Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROGRAMACIÓN
INGENIERÍA CIVIL QUÍMICA
UNIDAD 2
ESTRUCTURAS Y FUNCIONES
1
10-10-2019
SEMANA 6
REPASO
ESTRUCTURA DE CONTROL IF
Es una estructura de control, que permite verificar el cumplimiento o no de una
condición. En base al cumplimiento de la condición, se realiza un conjunto de
instrucciones, si la condición es falsa o no se cumple, el flujo del programa
simplemente ignora la ejecución de las instrucciones existentes en el if.
Ejemplo:
Realice un programa, que muestre por pantalla el mensaje usted no aprobó, en el
caso de que la nota ingresada sea menor que 4,0:
#include "stdio.h"
void main(void) {
float nota;
printf("Ingrese su nota\n");
scanf("%f",¬a);
if (nota < 4)
printf("Usted se sacó un %f por lo tanto
reprobó\n",nota);
}
2
10-10-2019
ESTRUCTURA DE CONTROL IF
Puede notar que en la línea del IF, no hay apertura llave “{” y tampoco cierre “}”, esto
es posible, si y sólo si, el bloque que dé instrucciones que se ejecutan tras el “if” sólo
contiene una sola linea (también puede usar llaves con una sola instrucción); en el
caso que este bloque contenga dos o más instrucciones, el uso de llaves es
obligatorio como puede ver en el siguiente ejemplo:
#include "stdio.h"
void main(void) {
float nota;
printf("Ingrese su nota\n");
scanf("%f",¬a);
if (nota < 4){
printf("Usted se sacó un %f por lo tanto reprobó\n",nota);
printf(“Pruebe a quitar las llaves para ver qué sucede”);
}
}
3
10-10-2019
#include "stdio.h"
void main(void) {
float nota;
printf("Ingrese su nota\n");
scanf("%f",¬a);
if (nota < 4){
printf("Usted se sacó un %f por lo tanto reprobó\n",nota);
}
else {
printf("Usted se sacó un %f por lo tanto aprobó\n",nota);
}
}
CONSIDERACIONES IF/ELSE
4
10-10-2019
10
5
10-10-2019
11
Ejemplos:
Si bien en el apartado anterior se explicó cuando usar cada
uno de los ciclos, haremos el mismo ejemplo usando los tres
ciclos.
12
6
10-10-2019
#include "stdio.h"
void main(void) { // USANDO CICLO FOR( )
int c = 1;
/*Lo mismo con for*/
for (int c=1; c<=50; c++){
printf( “ %d \n ", c );
} // cierre del For
} //cierre llaves de programa principal main()
13
#include "stdio.h"
void main(void) { // USANDO DO-WHILE( )
int b = 1;
/*Este es un comentario que puede ser de varias lineas*/
do { /* En este caso se ejecuta siempre el código al
menos una vez, ya que la condición se revisa abajo*/
printf("{ %d }\n",b);
b++; // aumento de b en 1
} while(b <= 50); /*este código se ejecutará mientras b sea
menor igual a 50*/
}//cierre del main programa principal
14
7
10-10-2019
#include "stdio.h"
void main(void) { //USANDO WHILE ( )
int a = 1;
while (a <= 50) {
//mientras a sea menor o igual a 50 iterará
printf("[ %d ]\n",a);
a++; //a++ hace que a aumente de n en 1
}//cierre del ciclo while
} //cierre del programa principal main
15
EJERCICIO 1
Realizar un programa que pide un número del 1 al 10 y
muestra la tabla de multiplicar correspondiente
int main() {
int T, i;
printf ("Indique la tabla que desea conocer (de 1 a 10): ");
scanf ("%d", &T);
printf("TABLA DEL %d \n", T);
for (i=1; i<=10; i++)
{ printf ("%d * %d = %d \n",T, i, T*i); }
}
16
8
10-10-2019
EJERCICIO 2
Realizar un programa que muestre todos los enteros
comprendidos entre un número definido por el usuario y 100.
#include <stdio.h>
int main() {
int num, i;
printf ("Introduzca un numero entero comprendido entre 1 y 99: ");
scanf ("%d", &num);
printf ("ENTEROS ENTRE %d y %d \n", num, 100);
for (i=num; i<=100; i++) { printf("%d \t", i); }
}
17
SEMANA 7
18
9
10-10-2019
ESTRUCTURAS DE DATOS
Una estructura de datos o TDA (Tipo de Dato Abstracto),
corresponde a una variable con varios campos y que además
es posible que tenga campos con diferentes tipos de dato.
19
ESTRUCTURAS DE DATOS
Otra forma de declarar variables de tipo estructura es:
Ejemplo Ejemplo
struct Nombre{ struct Agenda{
tipo_dato1 nombre_variable1; char nombre[];
tipo_dato2 nombre_variable2; char apellido[];
tipo_dato3 nombre_variable3; int edad;
tipo_dato4 nombre_variable4; int fono;
} }
struct Nombre variable1, variable2; struct Agenda dental, medica;
En este ejemplo se han declarado dos En este caso se han declarado dos
variables del mismo tipo que la variables del tipo de la estructura, una
estructura declarada. llamada dental y la otra médica.
20
10
10-10-2019
ESTRUCTURA DE DATOS
21
ESTRUCTURAS DE DATOS
22
11
10-10-2019
ESTRUCTURA DE DATOS
Agrupamos mediante la estructura fecha los campos: día, mes,
año. Ejemplo de estructura e inicialización de la misma:
struct fecha {
int dia;
int mes;
int agno;
};
struct fecha fecha1, fecha2;
fecha1=fecha2;
fecha1.mes=11; //ejemplo de asignación al campo mes.
struct fecha fecha3 = {23, 9, 2019}; //definición e inicialización.
23
ESTRUCTURA DE DATOS
Ejemplo, usando estructuras de datos o TDA desarrolle un
programa que permita crear un amigo con los datos nombre,
apellido, teléfono y edad, solicite el ingreso de los datos de un
amigo y muéstrelos posteriormente.
#include <stdio.h>
struct amigo {
/* Definimos la estructura amigo */
char nombre[30];
char apellido[40];
char telefono[10];
int edad;
}; struct amigo amigo1;
/* Declaramos la variable amigo1 con esa estructura */
main( ) {
printf( "Escribe el nombre del amigo1: " );
scanf( "%s", &amigo1.nombre );
printf( "Escribe el apellido del amigo1: " );
scanf( "%s", &amigo1.apellido );
printf( "Escribe el número de teléfono del amigo1: " );
scanf( "%s", &amigo1.telefono );
printf( "Mi amigo %s %s tiene el número: %s.\n", amigo1.nombre, amigo1.apellido, amigo1.telefono );
}
24
12
10-10-2019
Todos estos temas los veremos más adelante en esta misma clase.
25
EJERCICIOS
PRÁCTICA
26
13
10-10-2019
EJERCICIO 1 - FOR
1. Realizar un programa que pida un número y diga si es primo o no
#include <stdio.h>
int main(void)
{ int num, cont, x;
printf("Introduzca número: ");
scanf("%d",&num);
cont=0;
for (x=1;x<=num;x++)
{
if (num%x==0) cont++;
}
if (cont==2 || num==1 || num==0)
printf("Es primo\n");
else
printf("No es primo\n");
}
27
EJERCICIO 2 - FOR
2. Realizar un programa que pida dos números y muestre todos los números que van
desde el primero al segundo. Se debe controlar que los valores son correctos.
#include <stdio.h>
int main(void)
{
int num1, num2,x;
printf("Introduzca primer número:");
scanf("%d",&num1);
printf("Introduzca segundo número:");
scanf("%d",&num2);
if (num1>num2)
printf("Los valores introducidos no son correctos \n");
else
for (x=num1;x<=num2;x++)
{
printf("%d\n",x);
}
}
28
14
10-10-2019
EJERCICIO 3 - WHILE
3. Realizar un programa que haga un menú del tipo “desea salir (S/N)” y el programa no
termine hasta que el usuario teclee “S”
#include <stdio.h>
int main(void)
{
char c;
printf("¿Desea salir (S/N)?: ");
scanf("%s",&c);
while (c!='s' && c!='S')
{
printf("Opción incorrecta\n");
printf("¿Desea salir (S/N)?: ");
scanf("%s",&c);
}
}
29
EJERCICIO 4 - WHILE
4. Realizar un programa que visualice los números del 1 al 10
#include <stdio.h>
int main()
{
// Crear variables auxiliares
int contador=0;
// Inicializar el contador
contador=1;
// repetir mientras que el contador tenga un valor inferior a 10
while (contador<11) {
// visualizar el valor de contador
printf("\n%d",contador);
// incrementar contador en una unidad
contador=contador+1;
};
}
// Se ha de tener en cuenta que el no incrementar el contador puede tener como consecuencia
// la ejecución de un bucle infinito y por tanto el bloqueo del programa.
30
15
10-10-2019
EJERCICIO 5 - WHILE
5. Realizar un programa que calcule el factorial de un número cualquiera y lo muestre en
pantalla.
#include <stdio.h>
int main()
{
int num, num2;
printf("Introduce número: ");
scanf("%d",&num);
num2=num;
while (num2!=1){
num2=num2-1;
num=num*num2;
}
printf("El factorial es: %d \n", num);
}
31
EJERCICIO 6 – DO WHILE
6. Realizar un programa que muestre todos los números entre 11 y 21.
#include <stdio.h>
int main()
{
int contador=0;
// Inicializar el contador
contador=11;
do {
// visualizar el valor de contador
printf("\n%d",contador);
// incrementar contador en una unidad
contador=contador+1;
} while(contador<21);
}
32
16
10-10-2019
EJERCICIO 7 – DO WHILE
Realizar un programa que
1º) Pida por teclado un número (dato entero).
2º) Pregunte al usuario si desea introducir otro o no.
3º) Repita los pasos 1º y 2º, mientras que, el usuario no responda 'n' de (no).
4º) Muestre por pantalla la suma de los números introducidos por el usuario.
#include <stdio.h>
int main()
{ char seguir;
printf( "\n Desea introducir otro numero
int acumulador, numero; (s/n)?: " );
/* En acumulador se va a guardar la suma scanf( "%c", &seguir);
de
} while ( seguir != 'n' );
los números introducidos por el usuario. */
/* Mientras que el usuario desee introducir
acumulador = 0;
más números, el bucle iterará. */
do
printf( "\n La suma de los números
{ printf( "\n Introduzca un numero entero: " ); introducidos es: %d",
scanf( "%d", &numero); acumulador );
acumulador += numero; }
33
SEMANA 7
34
17
10-10-2019
ARREGLOS (ARRAY)
35
ARREGLOS (ARRAY)
Arreglos de una dimensión:
36
18
10-10-2019
ARREGLOS (ARRAY)
Arreglos de una dimensión:
37
ARREGLOS (ARRAY)
Arreglos de una dimensión - Declaración
38
19
10-10-2019
ARREGLOS (ARRAY)
39
ARREGLOS (ARRAY)
Arreglos de una dimensión - Inicialización
40
20
10-10-2019
ARREGLOS (ARRAY)
printf("%c",cadena[2]);
printf("%c",cadena[4]);
41
ARREGLOS (ARRAY)
Arreglos de una dimensión - Recorrido
42
21
10-10-2019
ARREGLOS (ARRAY)
Arreglos de una dimensión - Cadenas o string
43
ARREGLOS (ARRAY)
Arreglos de una dimensión - Cadenas o string
TAREA
44
22
10-10-2019
EJERCICIOS DE ARREGLOS
45
EJERCICIO 1
1. Realizar un programa que rellene un vector con los números primos comprendidos
entre 1 y 100 y los muestre en pantalla.
#include <stdio.h>
int main(void) if (cont==2 || z==1 || z==0)
{ int x,cont,z,i,tabla[100]; {
i=0; tabla[i]=x;
for (x=1;x<=100;x++) i++;
{ }
cont=0; }
for (z=1;z<=x;z++) for (x=0;x<i;x++)
{ {
if (x%z==0) printf("%d\n",tabla[x]);
{ }
cont++;
} }
}
46
23
10-10-2019
EJERCICIO 2
1. Realizar un programa que lea 10 números por teclado, los almacene en un vector y
muestre la suma, resta, multiplicación y división de todos.
#include <stdio.h>
int main(void) for (x=1;x<10;x++)
{ int x,tabla[10]; {
int sum,res,mul,div; sum=sum+tabla[x];
for (x=0;x<10;x++) res=res-tabla[x];
{ mul=mul*tabla[x];
printf("Introduzca número\n"); div=div/tabla[x];
scanf("%d",&tabla[x]); }
} printf("Suma: %d\n",sum);
sum=tabla[0]; printf("Resta: %d\n",res);
res=tabla[0]; printf("Multiplicación: %d\n",mul);
mul=tabla[0]; printf("División: %d\n",div);
div=tabla[0]; }
47
EJERCICIO 3
1. Realizar un programa que lea 5 números por teclado, los copie a otro vector
multiplicados por 2 y muestre el segundo vector.
#include <stdio.h>
int main()
{ int aux, numeros1[5],numeros2[5];
int i,j;
for (i=0;i<5;i++){
printf("Escriba un número");
scanf("%d",&numeros1[i]);
}
for(i=0;i<5;i++){
numeros2[i]=numeros1[i]*2;
}
for(i=0;i<5;i++){
printf("%d\n",numeros2[i]);
}
}
48
24
10-10-2019
EJERCICIO 4
Realizar un programa que rellene un vector con los 100 primeros números pares y muestre
su suma.
#include <stdio.h>
int main(void) for (x=0;x<i;x++){
{ sum=sum+tabla[x];
int x,cont,sum,i,tabla[100]; }
printf("%d\n",sum);
i=0; }
#include <stdio.h>
sum=0; int main(void)
for (x=1;x<=200;x++){ { int x, sum,tabla[100];sum=0;
for (x=0;x<100;x++){
cont=0; tabla[x]=2*x;
if (x%2==0){ }
tabla[i]=x; for (x=0;x<100;x++){
sum=sum+tabla[x];
i++;
}
} printf("%d\n",sum);
} }
49
EJERCICIO 5
Realizar un programa que lea 10 números por teclado, los almacene en un vector y muestre
la media.
#include <stdio.h>
int main()
{
float sum, numeros1[10];
int i;
sum=0;
for (i=0;i<10;i++){
printf("Escriba un número");
scanf("%f",&numeros1[i]);
}
for(i=0;i<10;i++){
sum=sum+numeros1[i];
}
printf("%f\n",sum/10);
}
50
25
10-10-2019
EJERCICIO 1
Realizar un programa que
51
BIBLIOGRAFÍA
52
26