Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Fue creado por Dennis Ritchie de los laboratorios BELL en 1972, cuando trabajaba junto a Ken Thompson, en el diseo del sistema operativo UNIX. Se deriva del lenguaje B de Thompson, que a su vez se deriva del BCPL de Martn Richards.
Es un lenguaje moderno de propsito general, que incorpora las caractersticas de control apuntadas como deseables por la teora y prctica de la informtica.
Planificacin escalonada. Programacin estructurada. Diseo modular. Programas compactos. Rapidez de ejecucin. Porttil. De relativo bajo nivel. Precisa compilarse
Los pasos necesarios para desarrollar un programa C son los siguientes: a) Edicin: Utilizar un editor para escribir el programa fuente texto. b) Compilacin: Compilar el programa fuente, es decir, traducir el programa a lenguaje mquina. c) Ejecucin: Una vez compilado se procede a la ejecucin del programa tecleando el nombre del fichero-programa.
/*Este programa imprime un mensaje*/ #include <stdio.h> main() { printf("Mi primer programa en C"); getch(); }
Un programa en C consiste en una o ms funciones, de las cuales una de ellas, debe llamarse main() y es la principal de todas. El programa comienza con la funcin: main() Cada funcin o programa, consta de un cuerpo de funcin delimitado por llaves de comienzo y fin { }
En el cuerpo de la funcin irn incluidas: sentencias, variables, funciones, etc. terminadas cada una de ellas por un punto y coma ;
#include <biblioteca1.h> #include <biblioteca2.h> ... declaraciones de funciones ... ... definiciones (cuerpos de funciones) ... ... declaraciones de variables globales ... main() { ... cuerpo del main ...
Declaracin de Datos
Funcin Principal
10
El inicio del programa debe llevar: El smbolo de numeral (#) la sentencia include, y entre
12
Se utiliza las funciones de biblioteca: scanf para la entrada de valores. Sintaxis es la siguiente:
scanf ("%d", &variable);
Lee el valor y lo guarda en una variable. printf para la salida de informacin. Sintaxis es la siguiente:
printf ("El valor es %d", variable);
ENTRADA DE TIPO CARCTER. Se declara una variable de tipo carcter y se guarda en: getch() o getche(). La diferencia es que getche() muestra en pantalla el carcter introducido. getch() lo mantiene oculto. Sintaxis: char opc; opc=getch(); opc=getche();
14
void main() { int r, a, p; printf ("Programa que calcula el rea y permetro de un circulo"); printf ("\nIntroduce el radio: "); scanf ("%d", &r); a = M_PI * pow(r,2); p = M_PI * (r+r); printf ("\nEl rea es: %d", a); printf ("\nEl permetro es: %d", p); getch(); }
15
#include<stdio.h> int x; main() { int a,b,suma; a=5; b=12; suma=a+b; suma=suma+b; printf("%d",suma); }
16
/* Programa para multiplicar dos nmeros */ #include <stdio.h> /* Esta funcion devuelve la suma de los enteros a y b */ int sumar(int a, int b) { return a + b; } /* Linea principal del programa */
int main(void) { int a, b; printf("Introduce dos numeros enteros y pulsa enter: "); scanf("%d %d", &a, &b); printf("La suma de %d y %d es %d\n", a, b, sumar(a,b)); return 0; }
17
Palabra reservada:
int short int unsigned int long int unsigned long Palabra reservada: float double long double Palabra reservada: char
Ejemplo
-850
Tamao (byte)
2 1 2 4 4 Tamao (byte) 85 VARIANTES DE LOS REALES 0.0058 1.00E-07 8 10 Tamao (byte) 1 4 VARIANTES DE ENTEROS -10 45689 588458 20000
Rango de valores
32767 127 65535 2147483647 4294967295 Rango de valores 3.4x10- 3.4x1038 1.7x10- 1.7x10308 3.4x10- 1.1x104932 Rango de valores 0 ......255
18
%d Si el dato que se imprimir o leer ser un nmero entero. %f Si el dato que se imprimir o leer ser un nmero real. %c Si el dato que se imprimir o leer ser un carcter. %s Si el dato que se imprimir o leer ser una cadena.
19
1.
Haciendo uso de las funciones gets y puts, disee un programa en C, que se lea el nombre del usuario y lo muestre en pantalla junto con un saludo.
2. 3.
Disee un programa en C, que lea y muestre en pantalla el valor de tres variables de tipo Entero. Disee un programa que muestre, los diferentes tipos de datos, usados en C. Primero, debe indicrsele al usuario que introduzca un valor, de un tipo dado; luego y despus de haber introducido valores en todas las variables, debe imprimirse el contenido de ellas, junto con un mensaje que indique, el tipo de dato.
4.
Disee un programa, en el cual se introduzcan el nombre y el peso y de un alumno, y luego la muestre en pantalla. El Nombre debe incluir el apellido, y en el campo del peso, solo deben incluir valores numricos.
5.
Disee un programe en C, en el cual despus de haber introducido, una tabla de multiplicacin cualquiera, imprima sta en forma de tabla: 2x2=4;2x3=6;2x4=8;;2x10=20
20
21
Esta estructura de decisin evala una expresin condicional y si se cumple, se ejecuta la sentencia s; si no, se ejecuta la sentencia t. La segunda parte de la condicin, else <t>, es opcional. SINTAXIS if (condicin)
22
#include <stdio.h> #include <conio.h> void main() { int year; clrscr(); //Limpia la pantalla printf ("Programa para determinar si un ao es bisiesto"); printf ("\nIntroduce un numero de ao\n"); scanf ("%i", &year); if (year%4 == 0 && year%100 != 0 || year%400 == 0) printf ("\a\nEl ao %i si es bisiesto", year); else printf ("\a\nEl ao %i no es bisiesto", year);
getch();
23
IF ANIDADAS
if (condicin)
else
24
#include <stdio.h> #include <conio.h> void main() { int a, b, c, d, mayor; clrscr (); printf ("Programa que indica cual de 4 numeros es el mayor\n"); printf ("Introduce 4 numeros enteros:\n"); scanf ("%i%i%i%i", &a, &b, &c, &d); if (a > b) if (a > c) if (a > d) mayor = a; else mayor = d; else if (c > d) mayor = c; else mayor = d; else if (b > c) if (b > d) mayor = b; else mayor = a; else if (c > d) mayor = c; else mayor = d; printf ("El mayor es %i", mayor); getch(); }
25
Evala una expresin que puede tomar n valores distintos, segn con cual de estos valores coincida, se ejecutaran ciertas acciones. SINTAXIS switch (valor) { case valor1: <sentencias>
26
#include<stdio.h> main(void) { int dia; printf("ingrese un nmero entre 1 y 7........ "); scanf("%d",&dia); switch(dia) { case 1: printf(" LUNES \n"); break; case 2: printf(" MARTES \n"); break; case 3: printf(" MIERCOLES\n"); break; case 4: printf(" JUEVES\n"); break; case 5: printf(" VIERNES\n"); break; case 6: printf(" SABADO\n"); break; case 7: printf(" DOMINGO\n"); break; default: printf(" SOLO NMEROS ENTRE 1 Y 7........ "); } }
27
WHILE La estructura while ejecuta la condicin de continuacin del ciclo al principio de este, antes de ejecutar las condiciones del bucle. SINTAXIS while (condicin) { Instrucciones que se repetirn mientras la condicin sea verdadera; Instrucciones adicionales; }
28
Las sentencias se ejecutan si la expresin es verdadera. La comprobacin es al inicio del bucle. Para la serie 3456789
#include<stdio.h>
int a; main() {
a=3;
while(a<10) { printf("%d",a);
a=a+1;
} }
29
{
Sentencias;
} while(condicin);
30
Leer nmeros desde el teclado hasta que uno de ellos es menor que o igual a 100: main() { int num; do {
scanf("%d", &num);
} while ( num>100 ); }
31
Permite inicializar los controles del bucle. SINTAXIS for(indice=inicio bucle; indice=fin bucle; indice
incrementa++)
{
#include<stdio.h> main(void) {int num,mayor,menor,x; mayor=0; menor=10000; for(x=1; x<=8;x++) { printf("INGRESAR NMERO %d\n",x); scanf("%d",&num); if(mayor<num) mayor=num; if(menor>num) menor=num; } printf("NMERO MAYOR: %d MENOR: %d \n",mayor,menor); return 0; }
33
VECTORES Es un array unidimensional, es decir, solo usa un ndice para referenciar a cada uno de los elementos. Se declara: tipo nombre [tamao];
34
int num[100]; /*Arreglo de tipo entero compuesto de 100 posiciones*/ char nom[80]; /*Texto de 80 caracteres*/ float x[12]; /*arreglo de 12 elementos punto flotantes */
35
Lea un vector de 10 posiciones, luego determine si la quinta posicin es positiva, si la primera posicin es negativa y si la ultima posicin es cero. #include <stdio.h> #include <conio.h> #define N 10 main() { float x[N]; int i; for(i=0; i<N; i++) { printf("Ingrese el valor %d:\n", i); scanf("%f", &x[i]); } if(x[4]>0) { printf("La quinta Posicin es Positiva\n\n"); } if(x[0]<0) { printf("La 1 Posicin es Negativo\n\n"); } if(x[N-1]==0) { printf("La Ultima Posicin es cero\n\n"); } getch(); return 0; }
36
#include<string.h> main(void) { int i,n1,n2,n3; float promedio; int naa,na18; char nombre[20]; int condicion; naa=0; na18=0; for(i=1;i<=40;i++) {printf("ingrese el nombre "); scanf("%s",nombre); printf("ingrese el nota1: "); scanf("%d",&n1); printf("ingrese el nota2: "); scanf("%d",&n2); printf("ingrese el nota3: "); scanf("%d",&n3); promedio=(n1+n2+n3)/3; if(promedio>12) {condicion=1; naa=naa+1; } else { condicion=2; } if(condicion==1) printf("%s nota1: %d nota2: %d, Nota3: %d, promedio: %lf condicion :aprobado \n",nombre,n1,n2,n3,promedio); else printf("%s nota1: %d nota2: %d, Nota3: %d, promedio: %lf condicion :desaprobado \n",nombre,n1,n2,n3,promedio); if(promedio>=18) na18=na18+1; } printf("hay aprobados: %d y aprobados con mas de 18 %d:\n",naa,na18); } 37
Son arreglos bidimensionales y deben ser declarados con corchetes independientes para cada subndice. SINTAXIS tipo nombre[numero_filas][numero_columnas];
38
#include <stdio.h> #include <conio.h> #define F 6 #define C 6 main() { int matriz[F][C], i,j, vector [F]={0,0,0,0,0,0}; for(i=0; i<F; i++) for(j=0; j<C; j++) { printf("Ingrese el elemento F=%d y Columna=%d de la matriz:\n", i,j); scanf("%d", &matriz[i][j]); vector[i]=vector[i]+matriz[i][j]; } printf("La Matriz generada es:\n\n"); for(i=0; i<F; i++) { for(j=0; j<C; j++) { printf("*%d*", matriz[i][j]); } printf("\n"); } printf("Y el vector suma de las filas es:\n\n"); for(i=0; i<F; i++) printf("%d\t", vector[i]); getch(); return 0; }
39
#include<stdio.h> void intercambio(int x,int y); int temp,a,b; main(void) { printf("ingrese a: "); scanf("%d",&a); printf("ingrese a: "); scanf("%d",&b); intercambio(a,b); } void intercambio(int x, int y) { temp=x; x=y; y=temp; printf("nuevos avlores de a:=%d y b:=%d",x,y); }
40