You are on page 1of 176

DEPARTAMENTO DE ENERGIA Y MECANICA

CARRERA DE INGENIERÍA EN PETROQUIMICA

FUNDAMENTOS
DE PROGRAMACIÓN
CUADERNO DIGITAL

ALUMNA: CYNTHIA MISHELL CHUGCHILAN HERRERA

DOCENTE: INGENIERO LUIS ALBERTO GUERRA CRUZ

PERIODO: OCTUBRE 2017 – FEBRERO 2018


Contenido
UNIDAD 1 ......................................................................................................................... 7
LENGUAJE ALGORÍTMICO Y ESTRUCTURAS DE CONTROL ...................................... 7
METODOLOGIA PARA LA SOLUCION DEL PROBLEMA POR MEDIO DE LA
COMPUTADORA .............................................................................................................. 9
Fases para desarrollar algoritmos.......................................................................................... 9
RAPTOR .......................................................................................................................... 10
Diagrama de flujo ............................................................................................................. 10
Secciones de la aplicación de RAPTOR. ............................................................................. 10
TIPOS DE DATOS ........................................................................................................... 27
ESTRUCTURA DE CONTROL ........................................................................................ 30
Estructura For ................................................................................................................... 32
Estructura while ................................................................................................................ 40
Ciclo do_while.................................................................................................................. 46
ESTRUCTURA SELECTIVA ........................................................................................... 52
Sentencia if ....................................................................................................................... 52
if_else .............................................................................................................................. 61
Switch .............................................................................................................................. 68
Examen ............................................................................................................................ 76
UNIDAD 2 ....................................................................................................................... 81
IDENTIFICADORES Y TIPOS DE DATOS ...................................................................... 81
Lab18_integracionswitch ................................................................................................... 87
Lab21_EntradaCadenaDeCaracteres ................................................................................... 95
Lab23_EspecificadoresFormato ......................................................................................... 97
Putchar ............................................................................................................................. 99
Gets ............................................................................................................................... 102
Lab25_gets ..................................................................................................................... 103
Proyecto 1 ...................................................................................................................... 105
Proyecto 2 ...................................................................................................................... 111
Unidad III ....................................................................................................................... 120
Arreglos y modularizacion ........................................................................................... 120
INTRODUCCION A PUNTEROS ............................................................................... 120
Operador de dirección ..................................................................................................... 122
Operador de Indireccion .................................................................................................. 124

Página 2
Operador Unario.......................................................................................................... 124
IMPLEMENTACION Y APLICACIONES ...................................................................... 127
.............................................................................................. 127
DEBER .......................................................................................................................... 130
Primer Algoritmo ............................................................................................................ 130
Segundo Algoritmo ......................................................................................................... 136
2.Aritmetica de punteros .................................................................................................. 140
Inicialización de punteros ................................................................................................ 146
Indireccion de punteros.................................................................................................... 149
2. ARREGLOS ARRAYS ............................................................................................... 152
........................................................................................ 152
Representación grafica........................................................ Error! Bookmark not defined.
Estructura del arreglo ...................................................................................................... 153

Página 3
SYLLABUS
Unidad 1
LENGUAJE ALGORÍTMICO Y ESTRUCTURAS DE CONTROL
Algoritmo

Definición

Características de un algoritmo

Metodología para la solución de problemas por medio de computadora

Representación de un algoritmo

Constantes variables y tipos de datos

Constantes

Variables

Tipos de Datos

Entrada y salida de datos

Operadores y expresiones

Operadores

Evaluación de expresiones

Programación estructurada con Diagramas de Flujo, Pseudocódigos y

Prueba de escritorio

Tipos de Estructuras de Control

Estructuras de control anidadas

Prueba de escritorio

Introducción a la Programación de Computadores

Código Fuente

Programación

Depurar

Compilar

Programa

Software

Sistema informático

Lenguaje de programación

Página 4
Historia de los lenguajes de programación

Entornos de programación

Code blocks, Dev c

Unidad 2
PROGRAMACIÓN ESTRUCTURADA EN LENGUAJE C
Identificadores y tipos de datos

Variables y constantes

Tipos de Datos

Estructura general de un programa

Directivas

Main

Librerías

Constantes

Comentarios

Operadores y expresiones

Operadores unarios

Operadores binarios

Operadores de asignación

Operadores de condición

Prioridades de los operadores

Expresiones

Sentencias de control

Instrucción if

Instrucción doble if-else

Instrucción switch y las enumeraciones

Bucle for

Bucle while

Bucle do-while

Bucles anidados

Página 5
Unidad 3
ARREGLOS Y MODULARIZACIÓN.
Introducción a punteros

Definición y tipos

Características

Declaración, implementación y aplicación

Arreglos

Unidimensionales

Bidimensionales

Funciones

Definición, elementos y tipos

Características

Declaración e implementación

Paso de parámetros

Valor

Paso de arreglos como parámetros

Búsqueda y ordenamiento

Ordenación y búsqueda de arreglos

Ordenación por método burbuja

Búsqueda lineal

Búsqueda binaria

Cadenas de caracteres

Librerías String.h

Página 6
UNIDAD 1

LENGUAJE ALGORÍTMICO Y ESTRUCTURAS DE CONTROL

1. Algoritmo

1.1 Definición

Métodos para resolver un “problema”

Secuencia de pasos ordenados Cambiar la bombilla

“Secuencia de pasos ordenados para cambiar la bombilla”

Inicio

Paso 1. Posicionar escalera

Paso 2. Subir por la escalera

Paso 2.1. Subir hasta alcanzar la bombilla

Paso 3. Aflojar los tornillos

Paso 3.1. Retirar la lámpara

Paso 4. Aflojar la bombilla hacia la izquierda

Paso 4.1. Girar hacia la izquierda hasta que se afloje

Paso 5. Retirar bombilla

Paso 6. Girar bombilla nueva hacia la derecha

Paso 6.1. Girar bombilla nueva hasta que quede fija

Paso7. Colocar la lámpara

Paso 7.1. Ajustar tornillos de lámpara

Paso 8. Bajar escalera

Paso 9. Retirar escalera

Fin

Conjunto finito de operaciones de manera lógica y ordenada para solucionar.

Preciso indica ordenador


Definido implica que el resultado nunca debe cambiar
Finito no se debe caer en repeticiones de procesos de manera innecesaria

Algoritmo: Sumar dos números enteros  intenger  Lenguaje en C: int

Inicio

Variables enteros num1, num2, sumaTotal

Página 7
Escribir “El primer sumando, num1”

Leer num1;

Escribir “El segundo sumando, num 2”

Leer num2;

sumaTotal= num1 + num2

Escribir “El resultado, sumaTotal”

Leer sumaTotal

Fin

Algoritmo: Sumar tres números decimales  float  Lenguaje en C: float

Inicio

Variables decimales num1, num2, num3, sumaTotal

Escribir “El primer sumando, num1”

Leer num1;

Escribir “El segundo sumando, num 2”

Leer num2;

Escribir “El tercer sumando, num 3”

Leer num3;

sumaTotal= num1 + num2 + num3

Escribir “El resultado, sumaTotal”

Leer sumaTotal

Fin

Algoritmo: Calcular la longitud de la circunferencia  real  Lenguaje en C: doublé

Inicio

Constante real PI 3.1416

Variable real radio, longitud

Escribir “Ingrese el radio de la circunferencia, radio”

Leer radio;

Longitud = 2*PI*radio

Escribir “La longitud de la circunferencia es: longitud”

Leer longitud

Fin

Página 8
METODOLOGIA PARA LA SOLUCION DEL PROBLEMA POR MEDIO DE
LA COMPUTADORA
1. Programa.- Es una secuencia de instrucciones detalladas y codificadas a fin de que un
ordenador realice las operaciones para resolver un determinado problema.

2. Planteamiento del problema:

Problema.- Es una cuestión que se propone con la finalidad de aclararla o resolverla utilizando
una metodología determinada.

a) Entrada.- Son todos los datos que hay que ingresar para la resolución del problema.
b) Proceso.- Son los diferentes procedimientos en los cuales se usan los datos
proporcionados por el usuario en el paso anterior “Entrada” para resolver el
problema.
c) Salida.- Es la solución del problema.

Fases para desarrollar algoritmos


Análisis.- En esta fase del proceso de desarrollo se determina que hace el programa. Se analiza
de forma dada que problema debe de resolver el programa. Se determinan cuales deben de ser
los datos de entrada y cuáles deben ser los datos de salida. En esta fase se determinan
explícitamente los requisitos funcionales “datos” que permiten determinar el problema a ser
resuelto.

Ejemplo Identificar a una persona

1. Requerimientos funcionales.

Datos Instancia de los datos


Sexo Femenino
Edad 18 años
Nacionalidad Ecuatoriana
Estado_civil Soltera
Etnia Mestiza
Profesión Ingeniero en petroquímica
Fecha_nacimiento 09/10/1999
nombre Victoria Pamela
apellido Villarroel Castillo
Ciudad_origen Ambato
sector Urbanización Landeta
idioma español
sueldo 1200 dólares

2. Diseño.- Este proceso se hace de forma descendente o modular. La resolución de un


problema complejo se realiza dividiendo el problema en subproblemas.

Identificar a una persona y además calcular el sueldo con horas extras en el país y el sueldo
por “comisión de servicios profesionales”

3. Herramientas de diseño.

a. Pseudocódigo
b. Diagrama de flujo
c. Implementación en lenguaje “C”

Página 9
RAPTOR
Permite crear un ambiente de diseño de visualización basado en diagrama de flujo y
pseudocódigo.

Diagrama de flujo.- Son diversas áreas de trabajo, área de símbolos, área donde muestra p lo
que esta ejecutado el programa por medio del diagrama de flujo.

Secciones de la aplicación de RAPTOR.


En el área donde creamos nuestro diagrama apartir de los símbolos.

Símbolos.- Son los objetos que nos ayudara a construir nuestro diagrama de
flujo.

Barra de menús.- Es el área donde se encuentra todas las opciones que


podemos aplicar.

Assignment (Asignación).- Permite crear y darle valor a una variable.

Call (Llamada).- Nos permite llamar a un módulo de nuestra aplicación.

Imput (Entrada).- Permite la toma de datos y almacenarlos en una variable.

Output (Salida).- Muestra un sms de salida hacia el usuario.

Selectim (Selección).- Permite gestionar sentencias de control.

Loop.- Permite gestionar sentencias de control de estados de espera.

Página 10
File

Este menú nos permite crear un nuevo archivo, abrir, guardar, copilar, mandar a imprimir el
diagrama e inclusive guardar el diagrama en el portapapeles para guardarlos en un documento
de texto o guardarlos como imagen en Paint.

Edit

Este menú nos permite copiar o pegar fragmentos de programa, además permite deshacer
cambios hechos en el diagrama.

Página 11
Menú Scale (Escala)

Este menú nos permite cambiar el tamaño del diagrama.

Menú View (Ver)

Nos permite modificar lo que queremos ver en el diagrama, comentarios, variables.

Página 12
Menú Run

Permiten ejecutar la aplicación ya sea pasa por paso o todo de corrido.

Menú Mode

Permite especificar en qué modo deseamos trabajar, principiante, intermedio y orientado u


objetos, en este curso trabajaremos de intermedio.

Página 13
Menú ink

Nos permite escoger un color de tinta para poder escribir hacer anotaciones, subrayan o hacer
cualquier anotación en en cualquier área del espacio del trabajo.

Menú Windows

Permite especificar la orientación que deseamos que tenga la ventana de la aplicación ya sea
vertical, horizontal o completa.

Página 14
Menú Generate

Permite que a partir de un diagrama que hayamos creado, convertirlo en un lenguaje de


programación. Unas ves escogidas nuestro lenguaje se nos creara un archivo totalmente editable
de nuestra aplicación previamente creada con diagramas.

Menú Help (ayuda)

En la ayuda del programa se encuentra un manual completo en inglés de todas las funciones,
operadores matemáticos, sintaxis entre otros.

Página 15
Algoritmo

Inicio

entero ancho, largo, num_ladrillo, kg_cemento, area;

escribir “Ingrese el ancho de la pared”, ancho;

leer ancho;

escribir “Ingrese el largo de la pared”, largo;

leer largo;

area= ancho*largo,

num_ladrillo=65*area,

kg_cemento=7*area,

leer num_ladrillo;

leer kg_cemento;

Fin

Página 16
Algoritmo

 Diseñe un algoritmo que me permita multiplicar 2 números enteros y despliegue la


lectura de la respuesta del producto total.

Algoritmo Multiplicar 2 números enteros

Inicio

variable real entero num1, num2, producto;

escribir “Ingrese el primer número”, num1;

leer num1;

escribir “Ingrese el segundo número”, num2;

leer num2;

producto = num1*num2

escribir “El producto de la multiplicación es:”, producto,

leer producto;

Fin

Algoritmo Área de una circunferencia

Inicio

real radio, area, perimetro;

real PI

escribir “Ingrese el radio de la circunferencia”, radio;

Página 17
leer radio;

area = PI*radio*radio;

perimetro = 2*PI*radio

escribir “El area de la circunferencia es:”, area;

escribir “El perimetro de la circunferencia es:”, perimetro;

leer area,

leer perimetro,

Fin

/*Diseñe un algoritmo que le presenta calcular la suma de los numeros enteros entre 1 y 10 es
decir 1+2+3+…….+10*/

Inicio

entero suma=0; numero=0;

escribir “Ingrese el numero:”, numero;

leer numero;

escribir “Ingrese la suma:”, suma;

leer suma;

numero = numero+1

suma=numero+suma

escribir “La suma total es:” suma_total;

Página 18
leer suma_total;

Fin

1 método

2 método

Página 19
/*Diseñe e implemente un algoritmo que permita sumar los números pares de 2 al 100*/

Inicio

entero suma=2; numero=4;

escribir “Ingrese suma:”, suma;

leer suma;

escribir “Ingrese la numero:”, numero;

leer numero;

suma= suma+numero;

numero = numero+2;

numero=100;

escribir “La suma total es:” suma_total;

leer suma_total;

Fin

SUMA NUMERO Suma = suma +numero Numero = numero +2 Numero <=100


2 4 2+4=6 4+2=6 T
6+6=12 6+2=8 T
12+8=20 8+2=10 T
20+10=30 10+2=12 T
30+12=42 12+2=14 T
42+14=56 14+2=16 T
56+16=72 16+2=18 T
72+18=90 18+2=20 T
90+10=110 20+2=22 T
110+22=132 22+2=24 T
132+24=156 24+2=26 T
156+26=182 26+2=28 T
182+28=210 28+2=30 T
210+30=240 30+2=32 T
240+32=272 32+2=34 T
272+34=306 34+2=36 T
306+36=342 36+2=38 T
346+38=380 38+2=40 T
380+40=420 40+2=42 T
420+42=462 42+2=44 T
462+44=506 44+2=46 T
506+46=552 46+2=48 T
552+48=600 48+2=50 T
600+50=650 50+2=52 T
650+52=702 52+2=54 T
702+54=756 54+2=56 T
756+56=812 56+2=58 T
812+58=870 58+2=60 T
870+60=930 60+2=62 T

Página 20
930+62=992 62+2=64 T
992+64=1056 64+2=66 T
1056+66=1122 66+2=68 T
1122+68=1190 68+2=70 T
1190+70=1260 70+2=72 T
1260+72=1332 72+2=74 T
1332+74=1406 74+2=76 T
1406+76=1482 76+2=78 T
1482+78=1560 78+2=80 T
1560+80=1640 80+2=82 T
1640+82=1722 82+2=84 T
1722+84=1806 84+2=86 T
1806+86=1892 86+2=88 T
1892+88=1980 88+2=90 T
1980+90=2070 90+2=92 T
2070+92=2162 92+2=94 T
2162+94=2256 94+2=96 T
2256+96=2352 96+2=98 T
2352+98=2450 98+2=100 T

1 método

Página 21
2 método

1. Algoritmo

Inicio

char nombre1, apellido1;

escribir “Ingrese el nombre del papa”, nombre1;

leer nombre1;

escribir “Ingrese el apellido del papa”, apellido1;

leer apellido1;

nombre_apellido = nombre + apellido ;

escribir “El nombre completo de mi papa es:” nombre_apellido;

leer nombre_apellido;

Fin

Página 22
2. Diagrama de flujo en Raptor

3. Implementación “C”

Página 23
*/ Diseñe e implemente un algoritmo de datos de la carrera/*

Datos

Universidad: Universidad de las fuerzas Armadas ESPE Extensión Latacunga

Departamento: Energía y Mecánica

Carrera: Ingeniería en Petroquímica

Cátedra: Fundamentos de Programación

Código: 22042

NRC: 1766

Alumno: Velásquez Reyes María Angeles

Docente: Ingeniero Luis Alberto Guerra Cruz

Periodo: octubre 2017 - febrero 2018

Página 24
1. Algoritmo

Inicio

char universidad, departamento, carrera, catedra, codigo, NRC, alumno, docente, periodo;

escribir “Ingrese universidad”, universidad;

leer universidad;

escribir “Ingrese departamento”, departamento;

leer departamento;

escribir “Ingrese carrera”, carrera;

leer carrera;

escribir “Ingrese catedra”, catedra;

leer catedra;

escribir “Ingrese codigo”, codigo;

leer codigo;

escribir “Ingrese NRC”, NRC;

leer NRC;

escribir “Ingrese alumno”, alumno;

leer alumno;

escribir “Ingrese docente”, docente;

leer docente;

escribir “Ingrese periodo”, periodo;

leer periodo;

caratula = universidad + departamento + carrera + catedra + codigo + NRC + alumno + docente


+ periodo;

escribir “Los datos de la caratula son: “, caratula;

leer caratula;

Fin

Página 25
2. Diagrama de flujo en Raptor

3. Implementación “C”

Página 26
TIPOS DE DATOS
TIPO Tamaño en Bits Rango Mínimo
Char 8 128 a 127
unsigned char 8 0 a 255
CARÁCTER signed char 8 128 a a127
Int 16 32768 a 32767
unsigned int 16 0 a 65535
signed int 16 Igual que int
short int 16 Igual que int
ENTERO unsigned short int 16 0 a 65535
signed short int 16 Igual que short int
long int 32 214748648 a 214748647
signed long int 32 Igual a long int
unsigned long int 32 0 a 4294967295
± (3.4e - 38 a 3.4e + 38)
Float 32 6 dígitos de precisión
FLOTANTE

± (1.7e - 308 a 1.7e + 308)


double 64 10 dígitos de precisión
PUNTO

± (3.4e - 4932 a 1.1e + 4932)


long double 80 10 dígitos de precisión
SIN TIPO Void 0 Sin valor

Ejercicios

Diseñe e implemente un algoritmo que le permita calcular la hipotenusa dado el cateto 1 con un
valor de 5 y el cateto 2 con un valor de 4; además despliegue un mensaje que indique el número
de bits con los que debe ser gestionado de acuerdo al tipo de dato proporcionado para la
resolución de la hipotenusa solicitada.

Página 27
1. Algoritmo

Inicio

entero cateto1=5, cateto2=4, hipotenusa;

escribir “Ingrese el cateto 1”, cateto1;

leer cateto1;

escribir “Ingrese el cateto 2”, cateto2;

leer cateto2;

hipotenusa = √(𝑐𝑎𝑡𝑒𝑡𝑜1)2 + (𝑐𝑎𝑡𝑒𝑡𝑜2)2 ;

escribir “El valor de la hipotenusa es:” hipotenusa;

leer hipotenusa;

escribir “El valor de los bits de cateto1 es igual a 16, cateto2 es igual a 16 y la hipotenusa es
igual a: 32”

Fin

2. Diagrama de flujo en Raptor

Página 28
3. Implementación “C”

Página 29
ESTRUCTURA DE CONTROL

Estructura Secuencial

Están basadas en sentencias de asignación simple. (=)

Ejercicio

Lab_7EstructuraSecuencial

*/ Diseñe e implemente un algoritmo que nos permita sumar 2 números enteros, en donde num1
tiene asignado un valor de 5, num2 un valor asignado con 12, especifique la suma total de estos
2 números. /*

1. Algoritmo

Inicio

entero num1=5, num2=12, suma_total;

escribir “Ingrese el numero 1”, num1;

leer num1;

escribir “Ingrese el numero 2”, num2;

leer num2;

suma_total = num1 + num2;

escribir “La suma total de los enteros es:” suma_total;

leer suma_total;

Fin

/  Es el especificador de formato de salto de línea.

%d Es para leer números enteros.

&  Ampersand es un puntero que permite ubicar la dirección y posición de una variable en la
memoria del computador (RAM)

Página 30
2. Diagrama de flujo en Raptor

3. Implementación “C”

Página 31
Estructura For
*/ Diseñe e implemente la estructura aplicando la estructura for en donde la condición inicial
denominado num se inicialice con un valor de 3, la condición de validación sea menor a 10 y la
condición de incremento en 1 su valor; imprima la suma bajo estas condiciones/*

 Condicional de Inicialización
 Condicional de Validación
 Condicional de Incremento
1. Algoritmo

Inicio

entero cont= 3, cont;

escribir “Ingrese cont”, cont;

leer cont;

escribir “cont”, cont;

leer cont;

cont = cont + 1;

cont = 10;
suma cont Suma=suma+cont Cont+1 Cont>10
Fin 1 3 3+1=4 3+1=4 T
4+4=8 4+1=5 T
8+5=13 5+1=6 T
13+6=19 6+1=7 T
19+7=26 7+1=8 T
26+8=34 8+1=9 T
34+9=43 9+1=10 T

Página 32
2. Diagrama de flujo en Raptor

3. Implementación “C”

Página 33
*/ Diseñe e implemente un algoritmo que permita desplegar los números dígitos en forma
ascendente /*

1. Algoritmo

Inicio

entero cont = 1, cont;

escribir “Ingrese cont”, cont;

leer cont;

escribir “cont”, cont;

leer cont;

cont = cont + 1;

cont = 10;

Fin

suma cont Suma=suma+cont Cont+1 Cont>10


1 1 1+1=2 1+1=2 T
2+2=4 2+1=3 T
4+3=7 3+1=4 T
7+4=11 4+1=5 T
11+5=16 5+1=6 T
16+6=22 6+1=7 T
22+7=29 7+1=8 T
29+8=37 8+1=9 T

Página 34
2. Diagrama de flujo en Raptor

3. Implementación “C”

Página 35
*/ Diseñe e implemente un algoritmo que le permita desplegar los números dígitos de forma
descendente /*

1. Algoritmo

Inicio

entero cont = 9, cont;

escribir “Ingrese cont”, cont;

leer cont;

escribir “cont”, cont;

leer cont;

cont = cont - 1;

cont = 0;

Fin

suma cont Suma=suma+cont Cont-1 Cont>10


1 9 9+1=10 9-1=8 T
10+8=18 8-1=7 T
18+7=25 7-1=6 T
25+6=31 6-1=5 T
31+5=36 5-1=4 T
36+4=40 4-1=3 T
40+3=43 3-1=2 T
43+2=45 2-1=1 T

Página 36
2. Diagrama de flujo en Raptor

3. Implementación “C”

Página 37
*/ Diseñe e implemente un algoritmo que le permita desplegar la siguiente serie de números 3,
5, 7, 9 /*

1. Algoritmo

Inicio

entero cont = 3, cont;

escribir “Ingrese cont”, cont;

leer cont;

escribir “cont”, cont;

leer cont;

cont = cont + 2;

cont = 11;

Fin

suma cont Suma=suma+cont Cont+2 Cont>10


1 3 1+2=3 1+2=3 T
3+3=6 3+2=5 T
6+5=11 5+2=7 T
11+7=18 7+2=9 T

Página 38
2. Diagrama de flujo en Raptor

3. Implementación “C”

Página 39
Estructura while
Sintaxis:

while (expresion)

Sentencia 1;

Sentencia 2;

El grupo de sentencias se ejecutan (sentencia 1; sentencia 2; ….. sentencia n) siempre y cuando


la expresión es verdadera, caso contrario se ejecuta las instrucciones que se encuentran fuera del
while.

Ejercicio

*/ Diseñe e implemente un algoritmo que le permita desplegar la siguiente serie de números 3,


4, 5, 6, 7, 8, 9 /*

1. Algoritmo

Inicio

entero cont = 3, cont;

escribir “Ingrese cont”, cont;

leer cont;

Página 40
escribir “cont”, cont;

leer cont;

cont = cont + 1;

cont = 10;

Fin

suma cont Suma=suma+cont Cont+1 Cont>10


1 3 3+1=4 3+1=4 T
4+4=8 4+1=5 T
8+5=13 5+1=6 T
13+6=19 6+1=7 T
19+7=26 7+1=8 T
26+8=34 8+1=9 T

2. Diagrama de flujo en Raptor

Página 41
3. Implementación “C”

Página 42
Lab_12while13

*/ Diseñe e implemente un algoritmo que le permita desplegar los números dígitos en orden
descendente /*

1. Algoritmo

Inicio

entero num= 9;

escribir “Ingrese num”, num;

leer num;

num = num - 1;

num < 10;

leer num;

Fin

suma cont Suma=suma+cont Cont+1 Cont>10


1 9 9+1=10 9-1=8 T
10+8=18 8-1=7 T
18+7=25 7-1=6 T
25+6=31 6-1=5 T
31+5=36 5-1=4 T
36+4=40 4-1=3 T
40+3=43 3-1=2 T
43+2=45 2-1=1 T

2. Diagrama de flujo en raptor

Página 43
3. Implementación “C”

Página 44
2 método

Página 45
Ciclo do_while
Sintaxis:

do{

sentencia1;

sentencia2;

Sentencian;

}while (condición);

Esta estructura valida la condición al finalizar, si la condición es verdadera del while se ejecutan
todas las sentencias, sentencia 1, sentencia 2,…..sentencia n, que están dentro del bloque del do;
si la condición del while es falsa se ejecutan todas las instrucciones que están fuera del do.

Lab13_do_while1

*/Diseñe e implemente un algoritmo que le permita leer números desde el teclado hasta que uno
de ellos sea menor (<) o igual (=) a 10/*

1. algoritmo

Inicio

entero num;

escribir “Ingrese num”, num;

leer num;

num = num + 1;

num = num + 2;

num = num -11;

num < 0;

leer num;

Fin

Página 46
2. Diagrama de flujo en raptor

3. implementación “C”

Página 47
*/ Diseñe e implemente un algoritmo que le permita imprimir la serie 3, 4, 5, 6, 7, 8, 9, 10/*

1. algoritmo

Inicio

entero num=2;

escribir “Ingrese número”, num;

leer num;

num = num + 1

num < 10

leer num;

Fin

suma cont Suma=suma+cont Cont+1 Cont>10


1 2 2+1=3 2+1=3 T
3+3=6 3+1=4 T
6+4=10 4+1=5 T
10+5=15 5+1=6 T
15+6=21 6+1=7 T
21+7=28 7+1=8 T
28+8=36 8+1=9 T
36+9=45 9+1=10 T

Página 48
2. Diagrama de flujo en raptor

3. implementación “C”

Página 49
*/ Diseñe e implemente un algoritmo que le permita imprimir la serie 3, 5, 7, 9, 11/*

1. algoritmo

Inicio

entero num=1;

escribir “Ingrese número”, num;

leer num;

num = num + 2;

num < 10

leer num;

Fin

suma cont Suma=suma+cont Cont+2 Cont>10


2 1 1+2=3 1+2=3 T
3+3=6 3+2=5 T
6+5=11 5+2=7 T
11+7=18 7+2=9 T
18+9=27 9+2=11 T

Página 50
2. Diagrama de flujo en raptor

3. implementación “C”

Página 51
ESTRUCTURA SELECTIVA

Sentencia if
Sintaxis:

if (expresión)

Sentecia;

En este tipo de estructura si (expresión) es verdadera se ejecuta la sentencia caso contrario se


ejecuta las sentencias que están fuera del (if).

*/ Diseñe e implemente un algoritmo que le permita leer 2 números enteros y a la vez le permita
comprobar cuál es el resto de la división del número entre el dividendo. Si el resto es 0, el
número es divisible para el divisor/*

1. algoritmo

Inicio

entero num, dividendo, divisor;

escribir “Ingrese número entero”, num;

leer num;

divisible = “El num es divisible para9”

escribir “es divisible:”, divisible;

divisor = “El num no es divisible para9”

escribir “no es divisible:”, divisible;

Fin

Página 52
2. Diagrama de flujo en raptor

3. implementación “C”

Página 53
Página 54
Lab14_if2

*/ Diseñe e implemente un algoritmo que le permita visualizar la tarifa de la luz según el


consumo de corriente eléctrica. Para un consumo menor de 1000 kwh por hora la tarifa es 1.2$
entre 1000 y 1250 keh por hora la tarifa es 1$ y mayor de 1850 kwh por hora la tarifa es 0.2 ctv
de dolar/*

1. algoritmo

Inicio

entero kwh, m=1;

escribir “Ingrese kwh consumido”, kwh;

leer kwh;

(1000*1) = 1.2

(1000*1) = 1

(1850*1) = 0.2

leer kwh:

Fin

2. Diagrama de flujo en raptor

Página 55
3. implementación “C”

Página 56
Página 57
*/ Diseñe e implemente un algoritmo que le permita visualizar la tarifa de la luz según el
consumo de corriente eléctrica. Para un consumo menor de 184 kwh 31 dias por tarifa de 17.25$
entres 110 kwh una tarifa de 9.37$ y entre 100 kwh una tarifa de 8.43$/*

1. algoritmo

Inicio

entero kwh. m=1;

escribir “ Ingrese kwh consumidos”, kwh;

leer kwh;

kwh = kwh*(1725/184)

escribir “su valor a pagar es:”, kwh;

leer kwh

Fin

Página 58
2. Diagrama de flujo en raptor

3. Implementación “C”

Página 59
Página 60
if_else
sintaxis:

if (expresión)

sentencia 1;

else

sentencia 2;

en esta estructura de control se sucita las siguientes actividades:

1. Si la (expresión) es V se ejecuta sentencia 1 y sale del programa.


2. Si (expresión) es F se ejecuta sentencia 2 que está dentro de else.

Lab14_if_else3

*/ Diseñe e implemente un algoritmo que le permita ingresar los números enteros, leer los
números enteros y verificar mediante una visualización si el número es divisible o no
divisible/*

Página 61
1. algoritmo

Inicio

entero divisor, numero, verdadero, falso;

escribir “Ingrese el divisor”, divisor;

leer divisor;

escribir “Ingrese el numero”, numero;

leer numero;

verdadero = 24/2

falso = 13/2

escribir “El numero es divisible:”, verdadero;

escribir “El numero no es divisible:”, falso;

leer verdadero;

leer falso;

Fin

2. Diagrama de flujo en raptor

Página 62
3. Implementación “C”

Página 63
Lab14_if_else4

*/ Diseñe e implemente un algoritmo que le permita calcular el mayor de 2 números enteros,


leídos desde el teclado y le permita visualizar el mayor en pantalla/*

1. algoritmo

Inicio

entero numero1, numero2;

escribir “Ingrese numero 1”, numero1;

leer numero1;

escribir “Ingrese el numero 2”, numero2;

leer numero2;

numero1 < numero2

escribir “No es mayor que:”, numero1, numero2;

escribir “Es mayor que:”, numero1, numero2;

leer numero1, numero2;

Fin

Página 64
2. Diagrama de flujo en raptor

3. Implementación “C”

Página 65
Página 66
Lab14_if_else5

*/ Diseñe e implemente un algoritmo que le permita calcular el mayor de 3 números enteros/*

1. algoritmo

Inicio

entero num1, num2, num3, numMayor;

escribir “Ingrese num1”, num1;

leer num1;

escribir “Ingrese el num2”, num2;

leer num2;

escribir “Ingrese el num3”, num3;

leer num3;

si=(num1>num2)

si=(num1>num3)

numMayor=num1;

caso contrario=numMayor=num3;

si=(num2>num3)

caso contrario=numMayor=num2;

Fin

2. Diagrama de flujo en raptor

Página 67
3. Implementación “C”

Switch
Esta sentencia se utiliza para seleccionar una de entre múltiples alternativas, es útil cuando la
selección se basa en el valor de una variable siempre o de una expresión simple denominado
expresión de control o selector, el valor de este selector puede ser de tipo int o char, pero no
puede ser de tipo float o double.

El selector se evalúa y se compara con cada una de las etiquetas del case, cada etiqueta es un
valor único, es decir tiene un valor diferente de las otras etiquetas.

Página 68
Sintaxis:

switch (selector)

case etiqueta1: case1:

sentencia1;

break;

case etiqueta2: case2:

sentencia2;

break;

case etiquetan: casen:

sentencian;

break;

default:

sentencia;

Lab15_switch1

*/ Diseñe e implemente un algoritmo que le permita seleccionar un tipo de vehiculo según un


valor numérico/*

1. algoritmo

Inicio

entero tipo_vehiculo, peaje;

escribir “Ingrese un tipo de vehiculo:”, tipo_vehiculo;

leer tipo_vehiculo;

switch (tipo_vehiculo)

case1:

escribir (“vehiculo para turismo”);

break;

case2:

escribir (“autobus”);

Página 69
break;

case3:

escribir (“motocicleta”);

break;

default:

escribir (“vehiculo no autorizado”);

Fin

2. Implementación “C”

Página 70
Página 71
Página 72
Página 73
Lab15_switch2

*/ Diseñe e implemente un algoritmo en el cual dada una nota en un examen, le permita escribir
el literal que le corresponda a la nota/*

1. algoritmo

Inicio

entero calificacion;

escribir “Ingrese una calificacion:”, calificacion;

leer calificacion;

switch (nota)

case1:

escribir (“Excelente. Examen Superado”);

break;

case2:

escribir (“Notable. Suficiente”);

break;

case3:

escribir (“Aprobado”);

break;

case4:

escribir (“Suspendido”);

break;

default:

escribir (“no es posible esta nota”);

Fin

Página 74
2. Diagrama de flujo en raptor

3. Implementación “C”

Página 75
Examen
*/ Diseñe e implemente un algoritmo en el cual, mediante un selector denominado carrera de
tipo entero, le permita validar etiquetas numéricas las mismas que contienen sentencias que
indican las carreras de la universidad de las Fuerzas Armadas ESPE seleccionar 6 carreras; la
instrucción de for deberá indicar esta carrera no existe/*

1. algoritmo

Inicio

entero carrera;

escribir “Ingrese carrera”, Ingenieria en petroquimica;

leer Ingenieria en petroquimica;

escribir “Ingrese carrera”, Ingenieria en mecatronica;

leer Ingenieria en mecatronica;

escribir “Ingrese carrera”, Ingenieria en automotriz;

leer Ingenieria en automotriz;

escribir “Ingrese carrera”, Ingenieria en mecánica e instrumental;

leer Ingenieria en mecánica e instrumental;

escribir “Ingrese carrera”, auditoria y finanzas;

leer auditoria y turismo;

escribir “Ingrese carrera”, hotelería y turismo;

leer hotelería y turismo;

Página 76
escribir “Esta carrera no existe”, esta carrera no existe;

leer esta carrera no existe;

Fin

2. Diagrama de flujo en raptor

3. Implementación “C”

Página 77
Página 78
Página 79
Página 80
UNIDAD 2

IDENTIFICADORES Y TIPOS DE DATOS


Lab16

*/ Diseñe e implemente un algoritmo que le prermita crear un menú la cual integre las siguientes
opciones:

1. Sumar 2 números
2. Restar 2 números
3. Multiplicar 2 números
4. Dividir dos números

Además utilice la aplicación puts; función que le permite escribir en la pantalla la cadena
apuntada a su argumento, luego de lo cual posiciona al cursor al principio de la siguiente línea.
Para la división de sebe controlar que no exista división para cero.

El selector deberá ser de tipo char, y los números que participan en las operaciones serán de tipo
float (decimales)

1. algoritmo

Inicio

char selector;

float num1, num2;

escribir (“ 1 Sumar dos numeros.”);

escribir (“ 2 Restar dos numeros.”);

Página 81
escribir (“ 3 Multiplicar dos numeros.”);

escribir (“ 4 Dividir dos numeros.”);

selector = getchar (); Lee toda la cadena de un argumento

if

si (selector > ‘0’ && selector < = ‘4’){ //&& and (y)

escribir (“ Ingrese el primer numero:”);

leer (“%f”, & num1);

escribir (“ Ingrese el segundo numero:”);

leer (“%f”, & num2);

switch (selector)

case 1:

escribir (“%.1f+%.1f”, num1, num2, num1+num2);

pausa;

case 2:

escribir (“%.1f-%.1f”, num1, num2, num1-num2);

pausa;

case 3:

escribir (“%.1f*%.1f”, num1, num2, num1*num2);

pausa;

case 4: Si (num2)// Si es if

escribir (“%.1f/%.1f”, num1, num2, num1/num2);

caso contrario // else

escribir (“Error división para cer0/n”);

pausa;

defecto: // default

escribir (“Esta opción no existe”);

Fin

Página 82
2. Implementación “C”

Página 83
Página 84
Página 85
Página 86
Lab18_integracionswitch

Página 87
Página 88
Página 89
Lab19_EntradaCaracter

*/ Diseñe e implemente un algoritmo que le permita ingresar por teclado las letras MV luego
estos caracteres deberán ser leidos/*

MV

Primer carácter ultimo carácter

1. algoritmo

Inicio

char primero, ultimo;

escribir (“Ingrese su primera inicial”);

leer (“%c”, &primera);

escribir (“Ingrese su ultima inicial”);

leer (“%c”, &ultima);

Fin

Página 90
2. Diagrama de flujo en Raptor

3. Implementación “C”

Página 91
Lab20_SalidaCadenaDeCaracteres

*/ Diseñe e implemente un algoritmo que le permita desplegar una salida de caracteres/*

1. Algoritmo

#define CP “Carrera en Petroquimica” // constante

Inicio

{
arreglo (array)

char p [ 25 ] = “Especialidad en Petroleo


tamaño del arreglo

tipo de dato

nombre del arreglo

Los arreglos tienen un mismo tipo de dato.

char p [21] c A r r e r a

int num [8] 9 8 6 0 1 3 4 5

float elemento [8] 2.1 3.6 8.9 4.5 1.0 2.6 7.0

Página 92
E s p e c i a l i d a d e n P e t r o q u i m i c a

puts (CP);

puts (“La mejor carrera de la ESPE”);

puts (p);

puts (&p[12]);

Fin

2. Diagrama de flujo en Raptor

Página 93
3. Implementación “C”

Página 94
Lab21_EntradaCadenaDeCaracteres
*/ Diseñe e implemente un algoritmo que le permita desplegar una entrada de caracteres/*

1. Algoritmo

Inicio

char carrera [50];

escribir (“Ingrese el nombre de la carrera:”);

leer (“%s”, carrera);

escribir (“El nombre de la carrera que se a ingresado es: %s” carrera);

Fin

2. Diagrama de flujo en Raptor

Página 95
3. Implementación “C

Página 96
Lab23_EspecificadoresFormato

*/ Diseñe e implemente un algoritmo que le permita imprimir los siguientes tipos de datos punto
flotante, entero y cadena; el punto flotante debe estar controlado por 4 números decimales/*

1. Algoritmo

Inicio

escribir (“numero flotante con 4 decimales:”);

escribir (“numero entero”);

escribir (“una cadena”);

int main ( )

escribir (“%.4f/n”, 12343217);

escribir (“%.3d/n”, 1000);

escribir (“%.10.15s/n”, “Esto es un texto sencillo”);

Fin

2. Diagrama de flujo en Raptor

Página 97
3. Implementación “C”

Página 98
Putchar
Lab24_Putchar

*/ Diseñe e implemente un algoritmo que le permita usar la función Putchar, la cual le permite
escribir su argumento de tipo carácter en la pantalla en la posición del cursor. Esta función tiene
un argumento de tipo char, aunque se declara usando un parámetro enetero, en el byte de menor
orden el que se muestra en la pantalla/*

1. Algoritmo

Inicio

char ch = ‘*’;

putchar (‘/007’); //pito de la computadora

putchar (‘A’);

putchar (‘ch’);

Fin

2. Diagrama de flujo en Raptor

Página 99
3. Implementación “C”

Página 100
Página 101
Gets

Página 102
La función gets esta función lee una cadena de caracteres introducida por un teclad hasta que se
pulse control/z.

Lab25_gets
*/ Diseñe e implemente un algoritmo que le permita realizar el ingreso de una cadena que acepte
cualquier nombre, incluyendo espacios en blanco, de hasta 80 caracteres de longitud/*

 Un puntero da o determina la dirección el valor del dato

1. Algoritmo

Inicio

entero nombre [81];

char *ptr;

escribir (“Bienvenido, como te llas?:”);

ptr = gets (nombre);

leer nombre;

Fin

2. Diagrama de flujo en Raptor

3. Implementación “C”

Página 103
Página 104
Proyecto 1

Tema: Producción de claveles bajo invernadero

Atributos:

Proceso de la producción de claveles

1. Algoritmo

Inicio

entero tema, area_de_cultivo, construccion_del_invernadero, Preparacion_del_suelo,


Desinfeccion_del_suelo, Trazado_de_camas, Armado_de_camas, Instalacion_del_agua,
Instalacion_de_cintas_de_goteo_para_las_camas, Siembra, Fertilizacion, Primer_pinche,
Control_de_malesas, Segundo_pinche, Aplicaciones fito_sanitarios, Tutoreo, Desyeme,
Cosecha, Proceso_en_poscosecha, Comercializacion, Rentabilidad_economica;

escribir “Ingrese tema”, tema;

leer tema;

escribir “1)Area_de_cultivo 2)Construccion_del_invernadero 3)Preparacion_del_suelo


4)Desinfeccion_del_suelo 5)Trazado_de_camas 6)Armado_de_camas 7)Instalacion_del_agua
8)Instalacion_de_cintas_de_goteo_para_las_camas 9)Siembra 10)Fertilizacion
11)Primer_pinche 12)Control_de_malesas 13)Segundo_pinche 14)Aplicaciones fito_sanitarios
15)Tutoreo 16)Desyeme 17)Cosecha 18)Proceso_en_poscosecha 19)Comercializacion
20)Rentabilidad_economica”, a;

a=1

escribir “Area de cultivo:”, Area_de_cultivo;

Página 105
area_de_cultivo=(1000 m cuadrados - Verificar que el terreno sea lo mas plano posible - Un
buen drenaje - Suelo suelto);

leer area_de_cultivo;

a=2

escribir “Construccion del invernadero:”, Construccion_del_invernadero;

Construccion_del_invernadero=( Armado de infraestructura con material metalico - Colocar un


plastico que aguante los efectos de clima recomendable de 6 a 7 micas - Ubicacion de
invernadero dependiendo la direcion del viento);

leer Construccion del invernadero;

a=3

escribir “Preparacion del suelo:”, Preparacion_del_suelo;

Preparacion_del_suelo=( Aflojar el suelo con arado y rastra - Añadir material organico al suelo
recomendable 2 kilos por metro cuadrado);

leer Preparacion_del_suelo;

a=4

escribir “Desinfeccion del suelo:”, Desinfeccion_del_suelo;

Desinfeccion_del_suelo =( Regar yeso agrícola recomendable 1 kilo por metro cuadrado -


Añadir nematizida granulado reconedable 4 kilos en cada metros cuadrados - Desinfección
química - Preparar 400 litros de agua con estos productos:- Desinfectante – Inseptisida –
Fungisida- Y aplicar por medio de derensh al suelo con bomba de mochila o motor);

leer Desinfeccion_del_suelo;

a=5

escribir “Trazado de camas:”, Trazado_de_camas;

Trazado_de_camas =( Una cama mide 0.70m de ancho por 30m de largo - Un pasillo o camino
entre cama y cama de 0.50m que sirve para las labores de trabajo y cosecha - En 1000 metros
cuadrados trazaremos 24 camas);

leer Trazado_de_camas;

a=6

escribir “Armado de camas :”, Armado_de_camas ;

Armado_de_camas =( La cama se arma a una altura de 15 cm añadiendo tierra);

leer Armado_de_camas ;

a=7

escribir “Instalacion del agua:”, Instalacion_del_agua;

Página 106
Instalacion_del_agua =( Colocamos tuberia madre de 2 pulgadas de diametro a la cual
colocaremos un collarin de una pulgana para generar presión - La manguera de una pulgada se
coloca al inicio de las camas);

leer Instalacion_del_agua;

a=8

escribir “Instalacion de cintas de goteo para las camas:”,


Instalacion_de_cintas_de_goteo_para_las_camas;

Instalacion_de_cintas_de_goteo_para_las_camas =( En la manguera de una pulgada que esta


instalada al inicio de cada cama se le realiza dos orificios de media para colocar adaptadores
para la istalacion de la cinta de goteo - Se coloca dos cintas de goteo por cama - En cada cinta al
final taparle para asi tener una buena distribución de agua en toda la cama);

leer Instalacion_de_cintas_de_goteo_para_las_camas;

a=9

escribir “Siembra:”, Siembra;

Siembra=( En cada cama entra 4 hileras e plantas de clavel con una distancia de planta a planta
de 11cm que tendríamos un promedio de 270 por hilera y un promedio de 1080 plantas por
cama - En el invernadero de 1000 m cuadrados estamos sembrando 26 mil plantas - Se hace un
orificio no tan profundo de 3 cm - Se coloca la plantula con raiz dentro del orificio -
Apretandole con la tierra);

leer Siembra;

a=10

escribir “Fertilizacion:”, Fertilizacion;

Fertilizacion=(Desde el primer dia que se siembra necesita nutrirse por lo cual se recomienda
dar fertilizacion por medio de las cintas de goteo - En 500 litros de agua un kilo de amonio un
kilo depotasio un kilo de calcio segun vaya creciendo la planta aumentariamos la dosis);

leer Fertilizacion;

a=11

escribir “Primer pinche:”, Primer_pinche;

Primer_pinche=( El primer pinche se lo realiza al primer mes de siembra - Se lo realiza a lo que


la planta tiene 12 pares de hojas despuntandole desde el quinto par de hojas - Ya que generara
de 4 a 5 tallos de produccion);

leer Primer_pinche;

a=12

escribir “Control de malesas:”, Control_de_malesas;

Página 107
Control_de_malesas=( Evitar que la malesa crezca en la cama ya que impide alimentar de buena
manera al clavel quitando nutrientes - Se lo realiza química o manualmente);

leer Control_de_malesas;

a=13

escribir “Segundo pinche:”, Segundo_pinche;

Segundo_pinche =( Se lo realiza al mes y medio del primero con el mismo procediemiento del
primer pinche - En este caso escogiendo 2 a 3 tallos );

leer Segundo_pinche;

a=14

escribir “Aplicaciones fito_sanitarios:”, Aplicaciones_fito_sanitarios;

Aplicaciones_fito_sanitarios =( Toda planta bajo invernadero necesita controles fito_sanitaros


por el mismo hecho de ser flores exportables evitando plagas y enfermedades identificadas
como daninas a las flores);

leer Aplicaciones_fito_sanitarios;

a=15

escribir “Tutoreo:”, Tutoreo;

Tutoreo =( Se coloca mallas de 30 metros de largo con cuadros de 25 cm - Se coloca la malla


sujetada por tiras de madera dandole la forma de un arco - En este caso se colocaria 5 mallas
para garantizar la rectitud del tallo para un buen manejo);

leer Tutoreo;

a=16

escribir “Desyeme:”, Desyeme;

Desyeme =( Esta labor se lo realiza manualmente sacando los brotes laterales del botón -
Dejando solo el boton principal);

leer Desyeme;

a=17

escribir “Cosecha:”, Cosecha;

Cosecha =( Esta labor se realiza a los 6 meses de haber plantado cortándole el tallo a 5 cm del
tallo principal - Cuando la flor ya indique su color);

leer Cosecha;

a=18

escribir “Proceso en poscosecha:”, Proceso_en_poscosecha;

Página 108
Proceso_en_poscosecha =( Se lo realiza sacando las tres cuartas partes de hojas del tallo -
Selección de tallos - Selección de plagas y enfermedades - Seleccionar la Longitud);

leer Proceso_en_poscosecha;

a=19

escribir “Comercializacion:”, Comercializacion;

Comercializacion=( Con la calidad requerida se procede a la venta exportando segun los clientes
- Con una gran demanda a Rusia);

leer Comercializacion;

a=20

escribir “Rentabilidad economica:”, Rentabilidad_economica;

Rentabilidad_economica =( Si todas las labores las hemos realizado bien tendremos una
rentabilidad del 50% en el primer año.);

leer Rentabilidad_economica;

Fin

2. Diagrama de flujo en Raptor

Página 109
3. Implementación “C”

Página 110
Proyecto 2

Tema: Transporte y distribución del petróleo

1. Algoritmo

Inicio

entero tema, Transporte, Oleoductos, Poliductos, Buques_tanque_y_camiones_cisterna,


Tamano_de_un_tanque, Diametro_en_pies, Altura_en pies, Carga_ventral,
Principales_beneficios_de_la_carga_ventral, Seguridad_para_el_operador,
Prevencion_de_incendios, Prevencion_de_derrames,
La_perforacion_horizontal_a_traves_de_los_rios, Como_se_hace, Ventajas, Distribucion,
Condiciones, Precio_del_barril, Cantidad_de_barriles_en_millones_por_dia, num1, num2,
num3, MayorCapacidad, num=15, num=18, num=40, num=1, num, dividendo, divisor;
escribir “Ingrese tema”, tema;

tema=( Transporte y distribución del petróleo);

leer tema;

escribir “1Transporte 2)Oleoductos 3)Poliductos 4)Buques_tanque_y_camiones_cisterna


5)Tamano_de_un_tanque 6)Diametro_en_pies 7)Altura_en_pies 8)Carga_ventral
9)Principales_beneficios_de_la_carga_ventral 10)Seguridad_para_el_operador
11)Prevencion_de_incendios 12)Prevencion_de_derrames
13)La_perforacion_horizontal_a_traves_de_los_rios 14)Como_se_hace 15)Ventajas
16)Distribucion 17)Condiciones 18)Precio_del_barril
19)Cantidad_de_barriles_en_millones_por_dia”, a;

a=1

escribir “Transporte:”, Transporte;

Página 111
Transporte=( El transporte del petróleo comienza en la superficie del pozo, recorre un itinerario
de rutas y redes y termina en su destino final de consumo.);

leer Transporte;

a=2

escribir “Oleoductos:”, Oleoductos;

Oleoductos=(Desde los tanques de almacenaje en los yacimientos, el petroleo crudo es


transportado por ramales internos hasta lineas troncales de oleoductos donde se lo bombea (a
veces por largas distancias) hacia terminales oceanicas o refinerias. - Como por lo general el
petroleo se encuentra a grandes distancias de los centros de consumo, los oleoductos integran
una parte importante de los recursos financieros que deben destinar las empresas para sus
inversiones de capital. - Muchos oleoductos se entierran por debajo del nivel del suelo, y todos
demandan procesos especiales para protegerlos de la corrosion. - La tuberia de acero es el
elemento de mayor costo de un oleoducto, y puede representar entre un 35 y un 45 por ciento de
la inversion total);

leer Oleoductos;

a=3

escribir “Poliductos:”, Poliductos;

Poliductos=(Los poliductos pueden transportar distintos tipos de petroleo crudo, kerosene,


naftas, gas-oil y gases licuados. - El transporte se realiza en baches sucesivos, de acuerdo a
programaciones preestablecidas controladas por centros de computacion, encargados de regular
las presiones y la velocidad de desplazamiento de cada producto particular.- A condicion de que
se cumplan ciertas normas, el nivel de mezcla de los sucesivos productos que pasan por el
poliducto alcanza sólo a pocas decenas de metros);

leer Poliductos;

a=4

escribir “Buques_tanque y camiones cisterna:”, Buques_tanque_y_camiones_cisterna;

Buques_tanque_y_camiones_cisterna=( Un volumen sustancial del petroleo que llega a los


mercados es transportado por buques tanque. Comparados con los buques de pasajeros, los
petroleros pueden parecer pequenos, debido a que, cuando navegan cargados solo una parte
pequeña de ellos aparece por encima de la linea de flotacion: pero los buques-tanque mas
grandes pueden movilizar mas de medio millon de toneladas (508.025, exactamente, transportan
los de mayor porte ahora en navegacion));

leer Buques_tanque_y_camiones_cisterna;

a=5

escribir “Tamano de un tanque:”, Tamano_de_un_tanque;

leer Tamano_de_un_tanque;

escribir “Ingrese num1”, num1;

Página 112
leer num1;

escribir “Ingrese num2”, num2;

leer num2;

escribir “Ingrese num3”, num3;

leer num3;

si=(num1>num2)

si=(num1>num3)

MayorCapacidad = num1;

caso contrario = MayorCapacidad = num3;

si=(num2>num3)

caso contrario = MayorCapacidad = num2;

a=6

escribir “Diametro_en_pies:”, Diametro_en_pies;

leer Diametro_en_pies;

escribir “Ingrese num”, num;

leer num;

suma = suma + num;

num = num + 15;

num < 300

leer suma;

a=7

escribir “Altura_en pies:”, Altura_en pies;

leer Altura_en pies;

escribir “Ingrese num”, num;

leer num;

suma = suma + num;

num = num + 18;

num < 50

leer num;

Página 113
a=8

escribir “Carga ventral:”, Carga_ventral;

Carga_ventral =(La carga ventral (Bottom Loading) es una metodologia utilizada para el
despacho de camiones cisternas por bombeo de hidrocarburos livianos, a traves de un sistema de
valvulas y canerias montadas en la parte inferior de las cisternas del camion. - El factor mas
importante por el cual los paises en desarrollo desde hace tiempo fueron adoptando la carga
ventral fue la seguridad, debido al importante numero de accidentes ocurridos en los Estados
Unidos a traves de los anos en la operatoria por carga superior);

leer Carga_ventral;

a=9

escribir “Principales beneficios de la carga ventral:”,


Principales_beneficios_de_la_carga_ventral;

Principales_beneficios_de_la_carga_ventral=(Seguridad para el operador – Prevencion de


incendios – Prevencion de derrames);

leer Principales_beneficios_de_la_carga_ventral;

a=10

escribir “Seguridad para el operador:”, Seguridad_para_el_operador;

Seguridad_para_el_operador=(A diferencia de la carga superior en el Bottom Loading, la


operacion de carga se realiza siempre a nivel de piso. Una vez que detiene la unidad en la
posicion de carga, se dirige caminando hacia el skid y procede a realizar el interconexionado de
la puesta a tierra (mediante conector socket) y de los brazos cargadores);

leer Seguridad_para_el_operador;

a=11

escribir “Prevencion de incendios:”, Prevencion_de_incendios;

Prevencion_de_incendios =( Como ya se mencionara el proceso de carga superior involucra el


efecto "splashing" del fluido que esta siendo cargado, y por ende la creacion de importantes
cargas estaticas dentro del compartimento mismo. Las oportunidades de ocurrencia de una
chispa aumentan en la carga superior dado que existe un hombre moviendose sobre la parte
superior del camion, y manipulando elementos metalicos que pueden rozarse);

leer Prevencion_de_incendios;

a=12

escribir “Prevencion_de_derrames:”, Prevencion_de_derrames;

Prevencion_de_derrames =( Existen razones fundamentadas que justifican la instalacion de


sistemas de prevencion de derrames por sobrellenados. Los camiones aptos para carga ventral
poseen dos sensores por cada cisterna, uno se ubica en el punto mas bajo del compartimento y el
otro en la parte superior, un par de centimetros por encima del enrasador fijo que determina la
capacidad nominal de la cisterna);

Página 114
leer Prevencion_de_derrames;

a=13

escribir “La perforación horizontal a través de los rios:”,


La_perforacion_horizontal_a_traves_de_los_rios;

La_perforacion_horizontal_a_traves_de_los_rios =( La perforacion horizontal aplicada en


algunos campos petroleros para mejorar sustancialmente la economia de produccion, tambien se
está utilizando en el tendido de ductos que deben cruzar cauces fluviales);

leer La_perforacion_horizontal_a_traves_de_los_rios;

a=14

escribir “Como se hace:”, Como_se_hace;

Como_se_hace =( La perforacion horizontal dirigida se realiza a partir un equipo perforador,


posicionado frente a una margen fluvial desde donde horada el subsuelo con un sistema que
inyecta lodo a alta presion. A continuacion de la herramienta perforadora, una sección especial,
de 30 cm., con su eje longitudinal anterior en angulo con el posterior, permite determinar la
curva programada. - Concluida la prueba hidraulica del ducto a instalar, esta caneria se
introduce en la perforacion ya ensanchada, simultaneamente con el retiro de la barra de sondeo
utilizada);

leer Como_se_hace;

a=15

escribir “Ventajas:”, Ventajas;

Ventajas=(1) Evita alteraciones al cauce fluvial, su lecho, orillas y ecosistema circundante,


eliminando el dragado o la construccion de puentes para el tendido aereo. Obviamente, esto
significa atenuar el impacto ambiental, reduciendo danos potenciales. - 2) Disminuye
significativamente el tiempo de obra y aporta una solucion de ingenieria de alta tecnologia. - 3)
Preserva a la caneria entubada de los efectos de socavacion y/o erosion, dado que el tunel por
debajo del rio se realiza a profundidades que oscilan entre 10 y 30 metros);

leer Ventajas;

a=16

escribir “Distribucion:”, Distribucion;

Distribucion =(El destino final del petroleo y sus derivados es el consumidor final. En el
proceso intervienen distribuidores mayoristas y minoristas, y se emplean todos los medios
posibles para el transporte y venta);

leer Distribucion;

a=17

escribir “Condiciones:”, Condiciones;

Página 115
Condiciones =( los oleoductos de productos - los barcos de cabotaje de alta mar - los transportes
fluviales (canoas, lanchas, remolcadores) - los depositos de almacenamiento - las vagones-
cisterna - los camiones-cisterna (grandes transportes o pequenos distribuidores domesticos) - las
estaciones de servicio - el avituallamiento de las aeronaves mediante camiones especializados y
canalizaciones subterraneas);

leer Condiciones;

a=18

escribir “Precio_del_barril:”, Precio_del_barril;

leer Precio_del_barril;

escribir “Ingrese num”, num;

leer num;

num = num + 8;

leer num;

num = num + 7;

leer num;

num = num + 1;

leer num;

num = num + 2;

leer num;

num = num + 5;

leer num;

num < 63

leer num;

a=19

escribir “Cantidad de barriles en millones por dia:”,


Cantidad_de_barriles_en_millones_por_dia;

leer Cantidad_de_barriles_en_millones_por_dia;

escribir “Ingrese num”, num;

leer num;

num = num + 9;

leer num;

Página 116
num = num + 8;

leer num;

num = num + 7;

leer num;

num = num + 2;

leer num;

num = num + 3;

leer num;

num < 30

leer num;

escribir “Ingrese numero entero:”, num;

leer num;

divisible = “El num es divisible para 10”;

escribir “es divisible:”, divisible;

divisible = “El num no es divisible para 10”;

escribir “no es divisible:”, divisible;

Fin

2. Diagrama de flujo en Raptor

Página 117
3. Implementación “C”

Página 118
Página 119
Unidad III

INTRODUCCION A PUNTEROS
DEFINICION

Un puntero o una variable puntero es una variable que contiene dirección de otras variables
siendo estas direcciones las posiciones internas de las variables en la memoria ram; es dear, la
variable puntera contiene valores que son direcciones de memoria donde se almacenan datos en
resumen un puntero es una variable que contiene o almacena una dirección de memoria.

Características

a) Características sobre uso de punteros


Proporcionar los medios por los cuales las funciones pueden modificar sus argumentos de
llamada

f (a , b)

f=Función

b=argumento 1

a=argumento 2

Soportar las rutinas de aislación dinámica tales como:

 Lista enlazada
 Arboles
 Entre otras
 Lista enlazada
Productos comestibles

Árbol:
Raíz padre

Modo izquierdo (hijo) Modo derecho (hija)

Página 120
TIPO
•[Lacteo,carne,verdura,fruta]

Nombre
•[Queso,pescado,col,pera]
Fecha de caducidad
•[1/2/8,2/2/18,12/3/18,20/4/18]

Precio [3.50,4.50,6.50,7.80]

Mejorar la eficiencia de ciertas rutinas mediante el uso de arreglos, cadenas estructuras entre
otras.

Arreglo

Int dígitos [10]

Int: Tipo de elemento que contiene un arreglo

Dígitos: nombre del arreglo

[10]: Tamaño del arreglo

Direcciones de memoria

Cuando se declara una variable se asocia tres atributos esta memoria:

 Su nombre
 Su tipo
 Su dirección de memoria
Representación de una dirección de memoria

0029FFCC

75
n

int

Página 121
En donde:

n: representa el nombre de la variable

0029FFCC: Representa la dirección de la variable

Int: representa el tipo de dato de la varíale

75: Representa el valor de la variable

Acceso al valor de una variable

Al valor de una variable se accede por media de su nombre por ejemplo si se desea imprimir el
valor de n usamos la siguiente sentencia

Printf(“%d”,n);

Operador de dirección
El operador unario de dirección & ampersan opera o se aplica sobre el nombre de la variable
para obtener su dirección

Lab26_puntero1

 Implemente un algoritmo que le permita obtener la dirección de su variable

#include<stdio.h>

int main()

int q=75.8965739873946739;

printf("%.11f\n",q);

RAPTOR

Página 122
DEV C++

Página 123
Operador de Indireccion
Operador Unario
Ejemplo

*punt

1)Operador

2)Tiene una dirección

3)En esa dirección del puntero se tiene almacenada un valor

%p

Especificador de format

%d, int,

%f, float,

%c, char,

%s, string,

Página 124
Lab26_puntero2

Implemente un algoritmo el cual un puntero entero se pueda almacenar el valor de la variable de


tipo entero num a la variable, la cual tiene un valor de 45, a la varíale de tipo entero *punt

#include<stdio.h>

int main ()

int num=75;

int *punt =&num; // la variable punt tiene asignado la direccion de num

printf("num=%d,&num=%p,punt=%p,&punt=%p\n",num,&num,punt,&punt);

//printf("&punt=%p\n",&punt);

Analizar para la variable puntero

0000000000000000023FE40

000000000000000000023FEAC
printf

Int*

Analizar para la variable num

0000000000000000023FE40

num 000000000000000000023FEAC
Int*

int*

Raptor

Página 125
Dev c++

Página 126
IMPLEMENTACION Y APLICACIONES

 Diseñe e implemente un algoritmo que le permita imprimir la dirección y el valor


de la variable num1 de tipo entero, mediante la gestión del uso de los punteros tipo
punt1 y punt2

#include<stdio.h>

int main ()

int num=75;

int *punt =&num; // la variable punt tiene asignado la direccion de num

printf("num=%d,&num=%p,punt=%p,&punt=%p\n",num,&num,punt,&punt);

//printf("&punt=%p\n",&punt);

Página 127
}

RAPTOR

Página 128
DEV C++

Página 129
DEBER

Primer Algoritmo
#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

main ()

system("color 6F");

getche();

int m;

getch();

do

char selector;

float
q=2.555,m=3.567,l=2.468,y=1.553,p=5.758,c=6.789,g=3.2546,v=2.789,co=8.3564,cu=5.789,a=
1.50234,b=2.5678,z=1.8998,r=1.5098,t=2.3567,ma=2.35678,pe=3.2567,u=2.891,n=3.6789;

puts("DEBER DE PROGRAMACION\n");

puts("Tema:Punteros\n");

puts("Nombre:Cynthia Chugchilan\n");

puts("Carrera:Ingeniera Petroquimica\n");

puts("A Precio de Lacteos ");

puts("B Precio de Carnes ");

puts("C Precio de Verduras");

puts("D Precio de Frutas");

printf("\n Porfavor digite una opcion:");

selector=getchar ();

Página 130
switch (selector)

case 'A':

printf("Lacteos\n");

printf("1) Queso\n");

scanf("%c",&q);

printf("q=%f\n",q);// viluazilar en valor del queso

printf("El precio del queso es :%.2f\n",q);//decimales

printf("Fecha de caducidad: 2/2/2018\n");

printf("&q=%p\n\n",&q);//visualiza la direccion de la variable

printf("2) Mantequilla\n");

scanf("%c",&m);

printf("m=%f\n",m);// viluazilar en valor de la mantequilla

printf("El precio de la mantequilla es:%.2f\n",m);//decimales

printf("Fecha de caducidad: 1/2/2018\n");

printf("&m=%p\n\n",&m);//visualiza la direccion de la variable

printf("3) Leche\n\n");

scanf("%c",&l);

printf("l=%f\n",l);// viluazilar en valor de la leche

printf("El precio de la leche es:%.2f\n",l);//decimales

printf("&l=%p\n",&l);//visualiza la direccion de la variable

printf("3) Yogur\n\n");

scanf("%c",&y);

printf("y=%f\n",y);// viluazilar en valor del yogurt

printf("El precio del yogur es:%.2f\n",y);//decimales

printf("Fecha de caducidad: 3/2/2018\n");

printf("&y=%p\n",&y);//visualiza la direccion de la variable

break;

case 'B':

Página 131
printf("Carnes\n\n");

printf("Pescado\n");

scanf("%c",&p);

printf("p=%f\n",p);// viluazilar en valor del pescado

printf("El precio del pescado es: %.2f\n",p);//decimales

printf("&p=%p\n\n",&p);//visualiza la direccion de la variable las carnes

printf("Carne de Cerdo");

scanf("%c",&c);

printf("c=%f\n",c);// viluazilar en valor de la carne de cerdo

printf("El precio de la carne de cerdo es: %.2f\n",c);//decimales

printf("Fecha de caducidad: 3/2/2018\n");//Fecha de caducidad

printf("&c=%p\n\n",&c);//visualiza la direccion de la variable las carnes

printf("Gallina");

scanf("%c",&g);

printf("g=%f\n",g);// viluazilar en valor de la gallina

printf("El precio de la gallina es: %.2f\n",g);//decimales

printf("&g=%p\n\n",&g);//visualiza la direccion de la variable las carnes

printf("Carne de Vaca");

scanf("%c",&v);

printf("v=%f\n",v);// viluazilar en valor de la carne de vaca

printf("El precio de la carne de Vaca es: %.2f\n",v);//decimales

printf("&g=%p\n\n",&g);//visualiza la direccion de la variable las carnes

printf("Carne de Cordero");

scanf("%c",&co);

printf("co=%f\n",co);// viluazilar en valor de la carne de cordero

printf("El precio de la carne de Cordero es: %.2f\n",co);//decimales

printf("&co=%p\n\n",&co);//visualiza la direccion de la variable las carnes

printf("Cuy");

scanf("%c",&cu);

Página 132
printf("cu=%f\n",cu);// viluazilar en valor del cuy

printf("El precio del cuy es: %.2f\n",cu);//decimales

printf("&cu=%p\n\n",&cu);//visualiza la direccion de la variable las carnes

break;

case 'C':

printf("Verduras\n");

printf("Acelgas\n");

scanf("%c",&a);

printf("a=%f\n",a);// visualizar en valor de verduras

printf("El precio de la acelga es:%.2f\n",a);//decimales

printf("&a=%p\n\n",&a);//visualiza la direccion de la variable las verduras

printf("Brocoli\n");

scanf("%c",&b);

printf("b=%f\n",b);// viluazilar en valor de verduras

printf("El precio del brocoli es:%.2f\n",b);//decimales

printf("&b=%p\n\n",&b);//visualiza la direccion de la variable las verduras

printf("Zanahoria\n");

scanf("%c",&z);

printf("z=%f\n",z);// viluazilar en valor de verduras

printf("El precio de la zanahoria es :%.2f\n",b);//decimales

printf("&z=%p\n\n",&z);//visualiza la direccion de la variable las verduras

printf("Rabano\n");

scanf("%c",&r);

printf("r=%f\n",r);// viluazilar en valor de verduras

printf("El precio del rabano es :%.2f\n",r);//decimales

printf("&r=%p\n\n",&r);//visualiza la direccion de la variable las verduras

printf("Tomate\n");

scanf("%c",&t);

printf("t=%f\n",t);// viluazilar en valor de verduras

Página 133
printf("El precio del tomate es :%.2f\n",t);//decimales

printf("&t=%p\n\n",&t);//visualiza la direccion de la variable las verduras

break;

case 'D':

printf("Frutas\n");

printf("Manzana\n");

scanf("%c",&ma);

printf("ma=%f\n",ma);// viluazilar en valor de la manzana

printf("El precio de las manzanas es :%.2f\n",ma);//decimales

printf("&ma=%p\n\n",&ma);//visualiza la direccion de la variable

printf("Pera");

scanf("%c",&pe);

printf("pe=%f\n",pe);// viluazilar en valor de las peras

printf("El precio de las peras es :%.2f\n",pe);//decimales

printf("&pe=%p\n\n",&pe);//visualiza la direccion de la variable

printf("Uva");

scanf("%c",&u);

printf("u=%f\n",u);// viluazilar en valor de la UVA

printf("El precio de las uvas :%.2f\n",ma);//decimales

printf("&u=%p\n\n",&u);//visualiza la direccion de la variable

printf("Naranja");

scanf("%c",&n);

printf("n=%f\n",n);// viluazilar en valor de las naranjas

printf("El precio de la naranja es :%.2f\n",n);//decimales

printf("&n=%p\n\n",&n);//visualiza la direccion de la variable

break;

default:

printf("\n\nEsta opcion no existe");

Página 134
printf("\n\n\tDesea repetir el proceso con algun programa 1.-SI, o ingrese cualquier otro valor
para cerrar ");

scanf("%d",&m);

}while (m==1);

RAPTOR

DEV C++

Página 135
Segundo Algoritmo
#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#include<iostream>

using namespace std;

int main ()

Página 136
system("color 5F");

getche();

int m;

getch();

do

char selector;

int n=10,*p_n = &n;

float n2=10.5, *p_n2 = &n2;

char n3='b', *p_n3 = &n3;

puts("DEBER DE PROGRAMACION\n");

puts("Tema:Punteros\n");

puts("Nombre:Cynthia Chugchilan\n");

puts("Carrera:Ingeniera Petroquimica\n");

puts("A Enteros ");

puts("B Decimales ");

puts("C Caracter");

puts("D Cadena");

printf("\n Porfavor digite una opcion:");

selector=getchar ();

switch (selector)

case 'A':

printf ("Numero entero:\n");

printf("Dato: %d\n",*p_n);

printf("Direccion: %p\n",p_n);

break;

case 'B':

printf("Numero flotante:\n");

Página 137
printf("Dato: %.2f\n",*p_n2);

printf("Direccion: %p\n",p_n2);

break;

case 'C':

printf("Caracter:\n");

printf("Dato: %c\n",*p_n3);

printf("Direccion: %p\n",p_n3);

break;

case 'D':

printf("Cadena de caracteres");

char nombre[30]="Cynthia Chucgchilan Herrera";

char Cynthia_Chucgchilan_Herrera;

char *p_n4=&Cynthia_Chucgchilan_Herrera;

printf("Dato: %s\n",nombre,*p_n4);

printf("Posicion: %p\n",p_n4);

break;

printf("\n\n\tDesea repetir el proceso con algun programa 1.-SI, o ingrese cualquier otro valor
para cerrar ");

scanf("%d",&m);

}while (m==1);

RAPTOR

Página 138
DEV C++

Página 139
2.Aritmetica de punteros
La aritmética de punteros se realiza de acuerdo al tipo ase de puntero que el puntero a un
elemento del mismo de tipo de la base. Existen solamente 2 operaciones aritméticas que se
puedan realizar con la variable puntero la suma y la resta.

Página 140
La suma, se realiza por medio de una suma de un puntero y una variable por medio del operador
incremento al puntero (punt++)

La resta tiene la misma forma de operador de la suma, considerando la resta de elementos o del
operador al puntero (punt--)

 Diseñe un algoritmo que le permita imprimir la dirección de una variable (int)


num1, la dirección de la variable num2,la dirección de un puntero, el contenido de
la variable punt considerando que las variables son de tipo float

#include<stdio.h>

int main()

float num1=100,num2=200,*punt;

punt=&num2;

punt++;//punt++=punt+1

printf("La direccion de num1=%p,la direccion de num2=%p\n",&num1,&num2);

printf("La direccion de punt=%p y el contenido punt=%.2f\n",&punt,*punt);

Raptor

Página 141
Página 142
Dev c++

Página 143
 Diseñe e implemente un algoritmo que le permita imprimir la dirección de la
variable num1,num2 la dirección punt y el contenido del puntero punt. La
operación de decremento se realiza en el puntero punt considere las variables de
tipo float

#include<stdio.h>

int main()

float num1=100,num2=200,*punt;

punt=&num2;

punt--;//punt--=punt-1

printf("La direccion de num1=%p,la direccion de num2=%p\n",&num1,&num2);

printf("La direccion de punt=%p y el contenido punt=%.2f\n",&punt,*punt);

RAPTOR

Página 144
DEV C++

Página 145
Inicialización de punteros
Luego de declarar un puntero este puntero tiene un valor desconocido por lo qué se debe
inicializar un valor conocido antes de usarlo por convenio, cuando se inicializa un puntero se
debe asignarle un valor NULL esto indica que el puntero apunta a una dirección de memoria
especifica también es frecuente inicializar los punteros con valor conocido.

 Diseñe e implemente un algoritmo que le permita imprimir haca atrás a una


cadena constante previamente definida

#include<stdio.h>

int main()

char *punt="Bienvenido a la Carrera de Petroquimica";

char *aux;

printf("\n La cadena original es:\n");

Página 146
puts(punt);

for (aux=punt; *aux ; aux++);// La operacion de incremento permite ingresar cada uno de los
caracteres de la cadena desde el inicio hasta el fin de la cadena

printf("La cadena al reves es:\n");

for (--aux; aux>= punt;aux--)

putchar(*aux);

RAPTOR

Página 147
DEV C++

Página 148
Indireccion de punteros
 Después de definir una variable puntera, la siguiente pasa es inicializar el puntero
y utilizarlo para direccionar algún dato especifico en memoria. EL uso de un
puntero para obtener el valor al que apunta es decir si dato apunta se denomina
direccionan el puntero para ellos se utiliza el operador de unidireccional.

Implemente un algoritmo que le permita desplegar el alfabeto

#include<stdio.h>

char caracter;//Declaracion de variable global

int main()

char *puntcaracter;

puntcaracter=&caracter;

for(caracter='A';caracter<='Z';caracter++)

printf("%c\n",*puntcaracter);

Raptor

Página 149
Página 150
Dev c++

Página 151
2. ARREGLOS ARRAYS

Un array es un conjunto ordenado de datos del mismo tipo de los datos se denominan elementos
del array y se enumeran consecutivamente (0, 1, 2, 3, ……., (n-1) estos números se denominan
valores o subíndices del array determinándose como:

0, 1, 2, 3,……., (n-1)

e0 e1 e2 e3 e(n-1)

Estos números declarados como subíndice localizan la posición del elemento dentro del array
por lo general el array se utiliza tipos de datos tales como: char, int, float, string.

Representación grafica

e 2.3 40.5 7.83 80.5 1.9


e0 e1 e2 e3 e4

Nombre del arreglo e

Tipo de dato del arreglo  float

Posición y contenidos de los elementos dentro del arreglo:

Primera posición:

e0 (2,3)  [2,3]

Segunda posición:

e1 (40,5)  [40,5]

Tercera posición:

e2 (7,83)  [7,83]

Cuarta posición:

e3 (80,5)  [80,50]

Quinta posición:

e5 (1,9)  [1,9]

Página 152
Estructura del arreglo
1. Declaración del arreglo
a) float e[5];

Tamaño del arreglo, es el número del elemento que tiene el arreglo

equipo_futbol[11] string

lacteos queso leche mantequilla

l0 l1 l2

b) Costo

costo
1 2 3 4

c0 c1 c2 c3

c) precio de vidrio

precio_vidrios 1,2 3.5 4.6 7,5 8,3

p_v 0 p_v1 p_v2 p_v3 pv4

d) curso de natación

Página 153
Lucas Kevin Steven Dennis Alejandro Stalin Anderson Brayan Karla Mishell

c_n0 c_n1 c_n2 c_n3 c_n4 c_n5 c_n6 c_n7 c_n8 c_n9

2. Declaración e inicialización del arreglo

float e[5] = {2.3, 40.5, 7.83, 80.5, 1.9}

char lacteos[3] = {queso, leche, mantequilla}

int costo [4] = {1,2,3,4}

float precio_vidirios[5] = {1.2,3.5,4.6,7.2,8.2}

stringcurso_natacion[10]=
{Lucas,kevin,Steven,Dennis,Alejandro,Stalin,Anderson,Brayan,Karla,Mishell}

3. Acceso a una posición concreta dentro del array

e[0] = 2.3; Acceso a la primera posición;

e[1] = 40.5; Acceso a la segunda posición;

e[2] = 7.83; Acceso a la tercera posición;

e[3] = 80.5; Acceso a la cuarta posición;

e[4] = 1.9; Acceso a la quinta posición;

a) char lacteos

l0 = queso; Acceso a la primera posición;

l1 = leche; Acceso a la segunda posición;

l2 = mantequilla; Acceso a la tercera posición;

for (i = 0; i < N; i++)

scanf (“%c”, &m-f[i]);

for (i = 0; i < 5; i++)

scanf (“%f”, &e[i]);

b) int costo [4 ]

Página 154
c0 = 1; Acceso a la primera posición;

c1 = 2; Acceso a la segunda posición;

c2 = 3; Acceso a la tercera posición;

c3 =4; Acceso a la cuarta posición;

for (i = 0; i < N; i++)

scanf (“%c”, &m-f[i]);

for (i = 0; i < 5; i++)

scanf (“%f”, &e[i]);

c) float precio_vidrios[5]

p_v0 = 1,2; Acceso a la primera posición;

p_v1 = 3,5; Acceso a la segunda posición;

p_v2 = 4,6; Acceso a la tercera posición;

p_v3 = 7,2; Acceso a la cuarta posición;

p_v4 = 8,2; Acceso a la quinta posición;

for (i = 0; i < N; i++)

scanf (“%c”, &m-f[i]);

for (i = 0; i < 5; i++)

scanf (“%f”, &e[i]);

d) curso de natacion

curso_natacion [10]

c_n0 = Lucas; Acceso a la primera posición;

c_n1 = Kevin; Acceso a la segunda posición;

c_n2 = Steven; Acceso a la tercera posición;

c_n3 = Dennis; Acceso a la cuarta posición;

Página 155
c_n4 = Alejandro; Acceso a la quinta posición;

c_n5 = Stalyn; Acceso a la sexta posición;

c_n6 = Anderson; Acceso a la séptima posición;

c_n7 = Brayan; Acceso a la octava posición;

c_n8 = Karla; Acceso a la novena posición;

c_n9 = Mishell; Acceso a la décima posición;

for (i = 0; i < N; i++)

scanf (“%c”, &m-f[i]);

for (i = 0; i < 10; i++)

scanf (“%f”, &e[i]);

4. Funciones que procesan un array de caracteres

puts (cadena); // Imprime la cadena

gets (cadena); // Lee la cadena desde el teclado

strcat (cadena1, cadena2); // Conecta cadenas

strcpy (cadena); // Copia cadenas

strcmp( ); // Compara cadenas

5. Bucles para recorrer arrays


a) Para leer o ingresar un array desde el teclado

for (i = 0; i < N; i++)

scanf (“%f”, &e[i]);

b) Para imprimir o presenter en pantalla un array

for (i = 0; i < 5; i++)

scanf (“%f”, &e[i]);

Página 156
lab27_arrayunidimensional1

 Diseñe un algoritmo que le permita crear un arreglo denominado tabla que integre
un tamaño de los 100 primeros enteros y muéstrenos por pantalla en orden
ascendente
1. Algoritmo

Inicio

#include<stdio.h>

int main ()

int num,tabla[100];

//Ubicar los elementos en el arreglo

for(num=1;num<=100;num++)

tabla [num]=num;//Los elementos estan dentro del arreglo

tabla

// Impimir el arreglo unimensional

for (num=1;num<=100;num++)

printf("%d\t",tabla [num]);// Imprimir cada uno de los elementos del arreglo

num num<=100 num++ tabla[num] = num


1 T 2 1
T 3 2
T 4 3
T 5 4
T 6 5
T 7 6
T 8 7

Página 157
T 9 8
T 10 9
T 11 10
T 12 11
T 113 12
T 14 13
T 15 14
T 16 15
T 17 16
T 18 17
T 19 18
T 20 19
T 21 20
T 22 21
T 23 22
T 24 23
T 25 24
T 26 25
T 27 26
T 28 27
T 29 28
T 30 29
T 31 30
T 32 31
T 33 32
T 34 33
T 35 34
T 36 35
T 37 36
T 38 37
T 39 38
T 40 39
T 41 40
T 42 41
T 43 42
T 44 43
T 45 44
T 46 45
T 47 46
T 48 47
T 49 48
T 50 49
T 51 50
T 52 51
T 53 52
T 54 53
T 55 54
T 56 55
T 57 56
T 58 57
T 59 58
T 60 59
T 61 60

Página 158
T 62 61
T 63 62
T 64 63
T 65 64
T 66 65
T 67 66
T 68 67
T 69 68
T 70 69
T 71 70
T 72 71
T 73 72
T 74 73
T 75 74
T 76 75
T 77 76
T 78 77
T 79 78
T 80 79
T 81 80
T 82 81
T 83 82
T 84 83
T 85 84
T 86 85
T 87 86
T 88 87
T 89 88
T 90 89
T 91 90
T 92 91
T 93 92
T 94 93
T 95 94
T 96 95
T 97 96
T 98 97
T 99 98
T 100 99
T 100

2. Diagrama de flujo en Raptor

Página 159
3. Implementación “C”

Página 160
 Diseñe un algoritmo que le permita ingresar un arreglo unidimensional llamado
tabla con tamaño de los 100 primeros números enteros y muéstralos por pantalla
en orden descendente
1. Algoritmo

Inicio

#include<stdio.h>

int main ()

int num,tabla[100];

//Ubicar los elementos en el arreglo

for(num=0;num<=100;num++)

Página 161
tabla [num]=num;//Los elementos estan dentro del arreglo

// Impimir el arreglo unimensional

for (num=100;num>=1;num--)

printf("%d\t",tabla[num]);// Imprimir cada uno de los elementos del arreglo

2. Diagrama de flujo e Raptor

Página 162
3. Implementación “C”

Página 163
 Diseñe un algoritmo que le permita ingresar un arreglo unidimensional llamado
tabla que le permita ingresar los números primos entre 1 y 100 y muéstrelos por
pantalla en forma ascendente
1. Algoritmo

Inicio

int x, cont, z, i=0, tabla [100];

i=0;

for (x=3; x<=100; x++)

cont=0;

for (z=1; z=x; z++)

if(x%z==0)

cont++;

if (cont==2// z==1// z==0)

Página 164
tabla[i]=x;

i++;
}

for (x=0; x<i; x++)

printf (“%d/t”, tabla[x]);

System (“pause”);

2. Diagrama de flujo en Raptor

Página 165
Página 166
3. Implementación “C”

Página 167
 Diseñe un algoritmo que le permita ingresar inicializar un arreglo con el número
de dia de cada mes, luego imprima cada mes con su respectivo número de día
1. Algoritmo

Inicio

int dias [12]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int i;

for ( i=0; i<12; i++)

printf (“El mes %d tiene %d dias./n”. i+1, días[i]);

Fin

2. Diagrama de flujo en Raptor

Página 168
3. Implementación “C”

Página 169
lab27_arrayunidimensional5

 Diseñe e implemente un algoritmo que le permita leer una cadena de dimensión si


una cadena denominada frase cuya longitud es de 50 caracteres y muéstrela al
revés
1. Algoritmo

Inicio

int indice, contador;

char frase [50];

printf (“Ingrese una frase: “);

gets (frase);

//Ingreso de cada uno de los caracteres de la cadena “frase”

for (contador=0; contador<50; contador++)

if (frase [contador]==’/0’)

indice= contador;

break;

printf (“La frase al revés es: /n/n”);

for (contador=índice-1; contador>=0; contador - -)

printf (“%c”, frase [contador]);

Fin

2. Diagrama de flujo en Raptor

Página 170
Página 171
3. Implementación “C”

Página 172
lab27_arrayunidimensional6

 Implemente un algoritmo que le permita leer una cadena denominada frase e


indique cuantas vocales existe en la cadena leída.
1. Algoritmo

Inicio

int sum=0, contador;

char frase [50];

printf (“Ingrese una frase: “);

gets (frase);

//Ingreso de los contadores

for (contador=0; contador<50; contador++)

switch (frase[contador])

case ‘a’:

sum++;

break;

case ‘e’:

sum++;

break;

case ‘i’:

sum++;

break;

case ‘o’:

sum++;

break;

case ‘u’:

sum++;

break;

default:

Página 173
break;

}// fin de switch

}// fin de for

printf (“/n En la frase hay %d vocales que incluyen espacios en blanco como vocales /n”, sum);

Fin

2. Diagrama de flujo en Raptor

Página 174
3. Implementación “C”

Página 175
Página 176