Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccin a la Algoritmia
Leccin: Formatos de Programas en C
Formatos de Programas en C
Estructura de un Programa
Formatos de Programas en C
#include #define Incluir librerias de C Definir constantes/macros
Estructura de un Programa
Formatos de Programas en C
Estructura de un Programa
Formatos de Programas en C
Estructura de un Programa
Salida.
#include <stdio.h>
void main() { int num,cuadrado; printf(\n introduzca el numero => ); scanf(%d,&num); cuadrado = num * num; /* declarar variables */ /* imprimir letrero para pedir el numero */ /* leer numero */ /* elevarlo al cuadrado */
Formatos de Programas en C
Salida
cadena_caracteres va a contener los textos que deseo imprimir, as como los respectivos formatos de las variables(v1,v2,...). El contenido de control va entre comillas dobles (contenido).
Ej. printf(La edad de %s es %d aos , nombre, edad);
Formatos de las variables. Variables.
Formatos de Programas en C
Tabla de formatos y secuencias de escape
Conversin para printf/scanf %c %d %f %s %o %x %% Se imprime/lee como Carcter Entero Punto flotante Cadena Octal Hexadecimal Carcter %
Secuencia de escape
Efecto Seal sonora retroceso Nueva pgina Nueva lnea Tabulacin horizontal
\a \b \f \n \t
Formatos de Programas en C
Entrada
scanf(formato,v1,v2...) : Leer desde el dispositivo de entrada estndar (teclado), y almacenarlo en las respectivas variables.
Lista de variables.
formato especificar el tipo de datos que sern capturados para las variables 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 cadena no lleva & antes del nombre de la variable. Esto ser explicado al trabajar con punteros.
Formatos de Programas en C
Estructuras de Control
Estructuras de Control. Controlan el flujo de ejecucin de un programa o funcin. Permiten combinar instrucciones o sentencias en una unidad lgica con un punto de entrada y un punto de salida. Una sentencia compuesta es un conjunto de sentencias encerradas entre llaves {}, utilizado para esquematizar un flujo secuencial. Tipos de Estructura: Secuencia. Seleccin (decisin). Repeticin (bucles, ciclos).
Formatos de Programas en C
Estructuras de Control
Estructuras de Control Simples Sentencia if para la seleccin.
if simple
no
se cumple la condicion?
se cumple la condicin? no
si
Instrucciones
si
Instruccin (es)
Instrucciones
if (condicin/expresin) { instruccion(es) };
Formatos de Programas en C
Estructuras de Control
Estructuras de Control Sentencia if anidada.
if (expresion booleana) if (expresion booleana) if (expresion booleana) { instruccion(es) } else { instruccion(es) } else { instruccion(es) } else { instruccion(es) ; }
Se cumple la condicin?
si
no Se cumple la condicin? no
si
si Se cumple la condicin? no
Instrucciones
Instrucciones
Instrucciones
Instrucciones
Formatos de Programas en C
Estructuras de Control
Estructuras de Control Mltiple Sentencia switch.
Selector ?
etiqueta1 :
Instruccin (es) break;
etiqueta2 :
Instruccin (es) break;
etiqueta3 : .......
Instruccin (es) break;
default :
Instruccin (es)
Formatos de Programas en C
Estructuras de Control
#include <stdio.h> #include <stdlib.h> /* Uso de la funcion switch Leer un carcter (+ - * /) y dos nmeros enteros. Si el carcter ledo es un operador aritmtico calcular la operacin 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"); }
Formatos de Programas en C
Estructuras de Control
/* Leer un carcter y dos nmeros enteros. Si el carcter ledo es un operador aritmtico calcular la operacin correspondiente, si es cualquier otro mostrar error. Hacer el programa utilizando la instruccin switch() */
#include <stdio.h> 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"); }
Formatos de Programas en C
Estructuras de Control
Estructuras de Control de Repeticin Sentencia for.
for
Variable Control = Valor inicial
La condicin es ? verdadero falso
Ej. Imprimir la tabla del 2. main() { int num; printf(tabla del 2 \n); for(num=1;num<=10;num++) printf(%2d x %2d = %2d,2,num,num*2); }
for(variable=vi; <condicin>;variacin)
Formatos de Programas en C
Estructuras de Control
Estructuras de Control de Repeticin Sentencia while.
Se cumple la condicin?
Instruccin(es)
verdadero
falso
main() { int num; printf(tabla del 2 \n); num=1; while (num<=10) { printf(%2d x %2d = %2d,2,num,num*2); num++; } }
Formatos de Programas en C
Estructuras de Control
Estructuras de Control de Repeticin Sentencia do-while.
verdadero
Instruccin(es)
do {
Formatos de Programas en C
Estructuras de Control
Uso del break. Cuando se encuentra la sentencia break en un ciclo, el programa termina el ciclo y el control del programa pasa a la siguiente sentencia del ciclo. Por Ejemplo: int t; for(t=0; t<100; t++) { printf("%d ", t); if (t==10) break; }
Formatos de Programas en C
Estructuras de Control
Uso del continue. La sentencia continue funciona igual a la sentencia break, pero forzando a la siguiente iteracin, por lo que salta las instrucciones que restan para llegar a probar la condicin. Por ejemplo, el siguiente programa visualizar slo los nmeros pares: for( x=0; x<100; x++) { if (x%2) continue; printf("%d ",x); }
Formatos de Programas en C
Funciones
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 cuales reciben el nombre de argumentos o parmetros.
Valores Introducidos
FUNCIN
Valor Regresado
Formatos de Programas en C
Funciones
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 fue invocada (su punto de referencia) y el programa retoma el control.
Formatos de Programas en C
Funciones
Elementos
int maximo(int a, int b, int c) { int m; m=a; if (b > m) m=b; if (c > m) m=c; return m;
Formatos de Programas en C
Funciones
Asociacin de Parmetros
en el programa
Prototipo de una Funcin Es cuando declaramos una funcin. Contiene el tipo de dato de retorno, el nombre de la funcin y la lista de parmetros encerrados entre parntesis y terminando con un punto y coma (;).
Formatos de Programas en C
Funciones
Pase de Parmetros
Por Valor: La funcin reciba una copia de los valores de los parmetros. Si se cambia el valor dentro de la funcin, este cambio slo afecta el mbito de la funcin.
Por Referencia: La funcin puede modificar los valores de los parmetros. Aqu se pasa la direccin de memoria del valor del parmetro a la funcin.
Formatos de Programas en C
Funciones
Pase de Parmetros
Por Valor:
int main() { int i = 6; func(i); return 0; }
Formatos de Programas en C
Funciones
#include <stdio.h> #include <math.h> 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; } void pvalor(float x,float y) { x= x*x; y= y*y; } void preferencia(float *x,float *y) { *x= (*x) * (*x); *y= (*y) * (*y); }