7/30/2019 Introd. a la Algoritmia Tema 4 y 6
1/26
Introduccin a la Algoritmia
Leccin: Formatos de Programas en C
Pontificia Universidad Catlica Madre y Maestra
Vicerrectora Acadmica
Facultad Ciencias de las Ingenieras
Ingeniera en Sistemas y Computacin - ISC
16-ene-13Santiago, Rep. Dom.
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
2/26
Formatos de Programas en CEstructura de un Programa
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
3/26
Formatos de Programas en CEstructura de un Programa
#include Incluir librerias de C#define Definir constantes/macros
[declaracin de funciones][declaracin de variables globales]
main()
{declaracin de variables locales para el main;Sentencias;llamadas de funciones;
}
funcion_a()
{ declaracin de variables locales para funcin_a;Sentencias;
}
funcion_b(){}
Todas las sentencias deben terminarCon punto y comas (;)
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
4/26
Formatos de Programas en CEstructura de un Programa
Ej.: Obtener un nmero, calcular e
imprimir su cuadrado.
#include void main()
{
int num,cuadrado; /* declarar variables */
printf(\n introduzca el numero => ); /* imprimir letrero para pedir el numero */
scanf(%d,&num); /* leer numero */
cuadrado = num * num; /* elevarlo al cuadrado */
/* imprimir el valor al cuadrado */
printf(\n %d elevado al cuadrado es = %d \n,num,cuadrado);
}
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
5/26
Formatos de Programas en CEstructura de un Programa
Salida.
#include
void main()
{int num,cuadrado; /* declarar variables */
printf(\n introduzca el numero => ); /* imprimir letrero para pedir el numero */
scanf(%d,&num); /* leer numero */
cuadrado = num * num; /* elevarlo al cuadrado */
/* imprimir el valor al cuadrado */printf(\n %d elevado al cuadrado es = %d \n,num,cuadrado);
}
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
6/26
Formatos de Programas en C
printf(cadena_caracteres,v1,v2...) : Imprimir porel dispositivo de salida estndar, pantalla.
cadena_caracteres va a contener los textos quedeseo imprimir, as como los respectivos formatosde las variables(v1,v2,...). El contenido de controlva entre comillas dobles (contenido).
Ej. printf(La edad de %s es %d aos, nombre, edad);
Salida
Lista de variables.
Formatos de las variables. Variables.
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
7/26
Formatos de Programas en CTabla de formatos y secuencias de escape
Conversin para printf/scanf Se imprime/lee como
%c
%d
%f
%s
%o%x
%%
Carcter
Entero
Punto flotante
Cadena
OctalHexadecimal
Carcter %
Secuencia de escape Efecto
\a
\b
\f
\n
\t
Seal sonora
retroceso
Nueva pgina
Nueva lnea
Tabulacin horizontal
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
8/26
Formatos de Programas en C
scanf(formato,v1,v2...) : Leer desde el dispositivo de entrada estndar(teclado), y almacenarlo en las respectivas variables.
formato especificar el tipo de datos que sern capturados para lasvariables v1 y v2. El contenido del formato va entre comillas dobles (..).
e.j.: scanf(%d, &edad);scanf(%c, &caracter);
scanf(%s, cadena); si el tipo de datos es texto o cadenano lleva & antes del nombre de lavariable. Esto ser explicado al trabajarcon punteros.
Entrada
Lista de variables.
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
9/26
Formatos de Programas en C
Estructuras de Control.
Controlan el flujo de ejecucin de un programa o funcin. Permitencombinar instrucciones o sentencias en una unidad lgica con unpunto de entrada y un punto de salida.
Una sentencia compuesta es un conjunto de sentencias encerradas entrellaves {}, utilizado para esquematizar un flujo secuencial.
Tipos de Estructura:
Secuencia.
Seleccin (decisin).
Repeticin (bucles, ciclos).
Estructuras de Control
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
10/26
Formatos de Programas en C
Estructuras de Control Simples Sentencia if para la seleccin.
Estructuras de Control
se cumple lacondicion?
Instruccin (es)
if simple
se cumple lacondicin?
no
Instruccionessi
Instrucciones
if..else (de dos alternativas)
if (condicin/expresin){ instruccion(es) };
if (condicin/expresin){ instruccion(es) ; }
else{ instruccion(es) ; }
si
no
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
11/26
Formatos de Programas en C
Estructuras de Control Sentencia if anidada.
Estructuras de Control
Se cumple lacondicin?
Instrucciones
Instrucciones
Se cumple lacondicin?
Se cumple lacondicin?
si
si
no
no
no
si
Instrucciones
Instrucciones
if (expresion booleana)if (expresion booleana)
if (expresion booleana){ instruccion(es) }
else{ instruccion(es) }
else{ instruccion(es) }
else{ instruccion(es) ; }
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
12/26
Formatos de Programas en C
Estructuras de Control Mltiple Sentencia switch.
Estructuras de Control
Selector ?
Instruccin (es)break;
Instruccin (es)break;
Instruccin (es)break;
Instruccin (es).......etiqueta1 : etiqueta2 : etiqueta3 : default :
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
13/26
Formatos de Programas en CEstructuras de Control
#include #include
/* Uso de la funcion switch Leer un carcter (+- * /) y dos nmeros enteros. Si el carcterledo es un operador aritmtico calcular laoperacin correspondiente, si es cualquier otro
mostrar error. */
void main(){char c, se='s';int a,b;
do
{fflush (stdin);printf("Digite Operacion: + - * / \n");c=getchar();printf("dame dos numeros Ej. 3,8 \n");scanf("%d, %d",&a,&b);
switch (c){case '+':
printf("resultado %d",a+b);break;
case '-':printf("resultado %d",a-b);break;
case '*':printf("resultado %d",a*b);break;
case '/':printf("resultado %d",a/b);break;
default:printf("error");
}fflush (stdin);printf("\n Desea Continuar \n");scanf("%c",&se);}while (toupper(se)=='S');system("pause");
}
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
14/26
Formatos de Programas en CEstructuras de Control
#include void main(){
char c;int a,b;printf("Digite la Operacion(+ - * /) \n");c=getchar();fflush (stdin);printf("Digite dos numeros Ej 5 8\n");scanf("%d %d",&a,&b);
switch (c){case '+':
printf("%d + %d es = a %d",a,b,a+b);break;
case '-':printf("%d + %d es = a %d",a,b,a-b);break;
case '*':printf("%d + %d es = a %d",a,b,a*b);break;
case '/':printf("%d + %d es = a %d",a,b,a/b);break;
default:
printf("error");}
printf("\n\n");system("PAUSE");return 0;
}
/* Leer un carcter y dos nmeros enteros. Si el carcter ledo es un operadoraritmtico calcular la operacin correspondiente, si es cualquier otro mostrar error.Hacer el programa utilizando la instruccin switch() */
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
15/26
Formatos de Programas en C
Estructuras de Control de Repeticin Sentencia for.
Estructuras de Control
La condicin es ? Instruccin(es)
for(variable=vi; ;variacin)
expresion deincremente/decremento
Variable Control
= Valor inicial verdadero
falso
for
Ej. Imprimir la tabla del 2.
main(){ int num;
printf(tabla del 2 \n);for(num=1;num
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
16/26
Formatos de Programas en C
Estructuras de Control de Repeticin Sentencia while.
Estructuras de Control
Instruccin(es)
while {
instrucciones;}
verdadero
falsoEj. Imprimir la tabla del 2.
main(){ int num;
printf(tabla del 2 \n);
num=1;while (num
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
17/26
Ej. Pedir un nmero positivo
main(){ int num;
do{
printf(Digite un n%cmero positivo: );scanf(%d, &num);}while (num
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
18/26
Formatos de Programas en C
Uso del break.
Cuando se encuentra la sentencia break en un ciclo, el programatermina el ciclo y el control del programa pasa a la siguiente sentenciadel ciclo.
Por Ejemplo:
int t;
for(t=0; t
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
19/26
Formatos de Programas en C
Uso del continue.
La sentencia continue funciona igual a la sentencia break, pero forzandoa la siguiente iteracin, por lo que salta las instrucciones que restan parallegar a probar la condicin.
Por ejemplo, el siguiente programa visualizar slo los nmeros pares:
for( x=0; x
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
20/26
Formatos de Programas en C
Funcin
Es un segmento del programa que realiza determinadas tareas.Siempre regresa cero o un valor nico.
Una funcin puede recibir cero o ms valores de entrada, los cualesreciben el nombre de argumentos o parmetros.
Funciones
Valores
Introducidos FUNCIN
Valor
Regresado
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
21/26
Formatos de Programas en C
Una funcin puede ser llamada desde cualquier parte de un programa.
Cuando esto sucede, el programa se detiene y pasa el control a la funcin,la cual al completarse su ejecucin retorna a la instruccin de donde fueinvocada (su punto de referencia) y el programa retoma el control.
Funciones
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
22/26
Formatos de Programas en C
Elementos
Funciones
int maximo(int a, int b, int c)
{ int m;
m=a;if (b > m)
m=b;
if (c > m)m=c;
return m;}
Encabezado Tipo de dato que retorna Nombre de la funcin
Lista de parmetros
Cuerpo. Declaracin de variables
locales. Clculos. Instruccin de retorno.
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
23/26
Formatos de Programas en C
Asociacin de Parmetros
Funciones
Prototipo de una Funcin
Es cuando declaramos una funcin. Contiene el tipo de dato deretorno, el nombre de la funcin y la lista de parmetros encerradosentre parntesis y terminando con un punto y coma (;).
int maximo(int a, int b, int c) en la funcin
max = maximo(int val1, int val2, int val3) en el programa
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
24/26
Formatos de Programas en C
Pase de Parmetros
Por Valor: La funcin reciba unacopia de los valores de losparmetros. Si se cambia el
valor dentro de la funcin, estecambio slo afecta el mbito dela funcin.
Por Referencia: La funcin puede
modificar los valores de losparmetros. Aqu se pasa ladireccin de memoria del valordel parmetro a la funcin.
Funciones
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
25/26
Formatos de Programas en C
Pase de Parmetros
Por Valor:
int main(){
int i = 6;
func(i);
return 0;
}
Funciones
void func( int i){
printf(%d,i)i++;
}
6 6
7/30/2019 Introd. a la Algoritmia Tema 4 y 6
26/26
Formatos de Programas en C
#include
#include
void pvalor(float,float);
void preferencia(float *,float *);
int main()
{
float a,b;
a = 5.0, b=1.0e2;
printf("\n Valores Iniciales: \n ");
printf("\n a = %.1f \t b = %.1f \n", a, b);
pvalor(a, b);
printf("\n Valores luego del pase por valor: \n ");
printf("\n a = %.1f \t b = %.1f ",a,b);
preferencia(&a, &b);printf("\n\n Valores luego del pase por referencia: \n ");
printf("\n a = %.1f \t b = %.1f \n \n ",a,b);
system("PAUSE");
return 0;
}
Funciones
void pvalor(float x,float y){
x= x*x;
y= y*y;}
void preferencia(float *x,float *y){
*x= (*x) * (*x);*y= (*y) * (*y);
}