Está en la página 1de 76

Introducción a Lenguaje C

Prof. Carolina Candia


Universidad Americana
Introducción a Lenguaje C
 El lenguaje C fue desarrollado por Dennis
Ritchie de los laboratorios Bell en 1.972
 Existen 4 antepasados definidos del
lenguaje C:
1. Algol 68
2. CPL
3. BCPL
4. B
 El lenguaje C tiene los mismos orígenes
geográficos que B
Introducción al Lenguaje C
 C es relativamente un lenguaje a bajo nivel por
estar muy cerca del hardware
 Los programas generados por los compiladores de
C, suelen ejecutarse tan rápidamente como los
programas escritos en lenguaje ensamblador
 El C se utilizo inicialmente para programación de
sistemas debido a que estos programas deben
ejecutarse muy rápidamente
 La programación de sistemas se refiere a la clase de
programas que son parte o infieren directamente
con el sistema operativo del computador
Introducción al lenguaje C
 Los programas de sistema hacen que el
computador sea capaz de realizar trabajo útil.
Los siguientes son ejemplos de programas de
sistemas que a menudo se escriben en C:
- Sistemas Operativos
- Integración de E/S (spooling)
- Programas de MODEM
- Interpretes de lenguajes
- Compiladores de lenguajes
- Editores de texto
- Controladores de red
- Bases de Datos
- Utilitarios
Características del lenguaje C
 El lenguaje C es un lenguaje estructurado, su
característica básica es:
1. La utilización de bloques. Un bloque es un conjunto
de sentencias que están relacionadas lógicamente

2. Un lenguaje estructurado proporciona diversas


posibilidades de programación, soporta el concepto de
subrutinas con variables locales. Una variable local es
aquella que solo es conocida por la subrutina en la que
ha sido definida.

3. Soporta varias construcciones de bucle


Orígenes de C++
 C++ nació como una extensión del
lenguaje C, para conseguir unificar la
eficiencia del lenguaje C con las ventajas
del modelo de orientación a objetos

 Fue originalmente desarrollado para


resolver algunas simulaciones muy
rigurosas, accionadas por eventos, para
las que las consideraciones sobre la
eficiencia imposibilitaban el uso de otros
lenguajes
Orígenes de C++
 En 1.980 se produjo el primer paso hacia c++ cuando
se presento un primer lenguaje llamado “C with
Classes” descrito por Bjarne Stroustrup

 En 1983/84 se rediseño este lenguaje pasando a


llamarse C++

 En 1985 este lenguaje, tras pequeños refinamientos,


se puso a disposición de todo el mundo.
En el diseño de C++ se tuvo en cuenta la necesidad
de compatibilidad ascendente entre C y C++; todo lo
que se puede hacer en C se puede hacer también en
C++, o sea, cualquier código de C puede tratarse con
un compilador de C++
Estructura de un programa en C

/* Comentarios */
Librería Estándar
Función principal ()
{
Bloque de instrucciones
}
Librería Estándar
 C++ tiene definidas un conjunto de
funciones estándar. Estas funciones se
encuentran en las denominadas librerías
estándar. Junto con estas librerías se
suministran los archivos de cabecera con
las declaraciones de funciones, que
debemos incluir en nuestros programas
cuando utilicemos algunas de las funciones
declaradas en ellas.
Librerías Estándar
 Las librerías son archivos con
extensión .LIB que incluyen el
código ya compilado y deben
juntarse con nuestro código al
realizar el link.
Reglas Generales :
 Todas las instrucciones terminan en un punto y coma.
 Todas las condiciones van entre paréntesis.
 Los comentarios comienzan con /* y terminan con */
 Los #include permiten usar funciones ya escritas incluidas en
grandes colecciones denominadas librerías. Las más usuales
son :
1. #include <stdio.h> permite usar printf, scanf,
fread, fwrite, fopen, etc.
2. #include <conio.h> permite usar clrscr
3. #include <stdlib.h> permite usar rand
4. #include <math.h> permite usar funciones
trigonométricas
 Las constantes se definen tras los #include, de la siguiente
forma:
1. #define pi 3.1415
2. #define numeroe 2.71
Ejemplo
#include<stdio.h>
main()
{
int a,b,suma=0;
printf("Ingrese el primer numero\n");
scanf("%d",&a);
printf("Ingrese el segundo numero\n");
scanf("%d",&b);
suma=a+b;
printf("resultado:%d\a",suma);
return 0;
}
Ejemplos
#include<stdio.h>
#include<conio.h>
float a,b,suma;
main()
{
clrscr();
printf("Ingrese favor un numero\n");
scanf("%f",&a);
printf("Ingrese el segundo numero\n");
scanf("%f",&b);
suma=a+b;
printf("suma:%f",suma);
return(0);
}
Ejemplo
#include<stdio.h>
main()
{
float a,b,c,suma=0,promedio=0;
printf("Querido alumno Ingresá la primera nota\n");
scanf("%f",&a);
printf("Querido alumno Ingresá la segunda nota\n");
scanf("%f",&b);
printf("Querido alumno Ingresá la tercera nota\n");
scanf("%f",&c);
suma=(a+b+c);
promedio=suma/3;
printf("El promedio de tus notas es:%f\a",promedio);
return 0;
}
Ejemplo
#include<stdio.h>
#include<conio.h>
float gradosC,gradosF;
void main()
{
clrscr();
printf("Ingrese los grados Celcius\n");
scanf("%f",&gradosC);
gradosF=gradosC*9/5+32;
printf("Grados Fahrenheit:%f",gradosF);
getch();
}
Ejemplo
#include<stdio.h>
#include<conio.h>
#include<math.h>
float c1,c2,h,d;
void main()
{
clrscr();
printf("Ingrese cateto 1\n");
scanf("%f",&c1);
printf("Ingrese cateto2\n");
scanf("%f",&c2);
d=(c1*c1)+(c2*c2);
h=sqrt(d);
printf("La hipotenusa es:%f",h);
getch();
}
Variable - Definición
 Variables
Una variable es una posición de memoria
con nombre que se usa para mantener un
valor que puede ser modificado por el
programa. Todas las variables han de
estar declaradas antes de poder ser
utilizadas. La forma general de
declaración es: tipo lista_de_variables.
Variables - Declaración

Donde se declaran las variables


Existen tres sitios básicos donde
podemos declarar variables:
1. Dentro de las funciones

2. En la definición de parámetros de
funciones. Variables locales
3. Fuera de todas las funciones.
Variables globales
Ejemplo – Variable Local
/* Ejemplo del uso de variables locales*/
#include <stdio.h>
int main (void)
{
int x;
x=10;
if(x==10)
{
int x; //Esta x oculta a la x externa
x=99;
printf("x interna: %d\n", x);
}
printf ("x externa: %d\n", x);
return (0);
}
Ejemplo - Condicionales

/* Demuestra el funcionamiento de
if - else imprimiendo en pantalla si

un valor ingresado es o no mayor


que cero */
Ejemplo - Condicionales
#include <stdio.h>
main ()
{
int num;
printf("¿QUE NUMERO DESEA INGRESAR?");
scanf ("%d", &num);
if (num>0)
printf("\a\a\a El numero que ingreso es mayor
a cero\n");
else
printf("\a El numero que ingreso es menor a
cero\n");
return(0);
}
Ejemplo - Condicionales

/*Determinar si un alumno aprueba o


reprueba un curso, sabiendo
que aprobara si su promedio de tres
calificaciones es mayor o igual a 70;
en caso contrario no aprueba*/
Variables - Locales
 Las variables que se declaran dentro de una función
se denominan variables locales.
 Estas variables pueden ser utilizadas solo en las
instrucciones que estén dentro del bloque en el que
han sido declaradas.
 Las variables locales no son conocidas fuera de su
propio bloque de código. (Bloque de código
comienza con una llave de apertura y termina con
una llave de cierre).
 Las variables locales solo existen mientras se esta
ejecutando el bloque de código en el que son
declaradas. Se crea al entrar al bloque y se destruye
al salir de el.
 Una variable declarada dentro de un bloque de
código no tiene que ver con otra variable con el
mismo nombre que se haya declarado en otro
bloque de código distinto.
Variables Globales
 Las variables globales se conocen a lo largo de todo el
programa y pueden ser utilizadas en cualquier parte del
código.
 Mantienen sus valores durante toda la ejecución del
programa.
 Las variables globales se crean al declararlas en cualquier
parte fuera de una función.
 Pueden ser accedidas por cualquier expresión,
independientemente de la función en la que se encuentre la
expresión.
 El almacenamiento de las variables globales se hace un una
región de memoria fija establecida para este propósito por el
compilador.
 Las variables globales son muy útiles cuando se usan los
mismos datos en varias funciones del programa. Sin
embargo, se debe evitar el uso de variables globales
innecesarias. Debido a que utilizan memoria todo el tiempo
de ejecución del programa, no solo cuando se necesitan.
Ejemplo - Condicionales
#include <stdio.h>
#include <conio.h>
main ()
{
int cal1, cal2, cal3, promedio=0;
printf("\nCalcular el promedio de calificaciones de un alumno\n");
printf("\n Ingresa tu primera nota:\n");
scanf ("%d", & cal1);
printf("\n Ingresa tu segunda nota:\n");
scanf ("%d", & cal2);
printf("\n Ingresa tu tercera nota:\n");
scanf ("%d", & cal3);
promedio=(cal1+cal2+cal3)/3;
if (promedio>=70)
{
printf("Has aprobado el curso\n");
}
else
{
printf("\t*******************\n");
printf("\t¡¡DEBES RECURSAR !!\n");
printf("\t*******************\n");
}
return(0);
}
Ejemplo - Condicionales

/*Un hombre desea saber cuanto


dinero se genera por concepto de
intereses sobre la cantidad que
tiene en inversión en el banco. El
decidirá reinvertir los intereses
siempre y cuando estos excedan a
7000 $ y en ese caso desea saber
cuanto dinero tendrá finalmente en
su cuenta*/
Ejemplo - Condicionales
#include <stdio.h>
main ()
{
float cap, p_int, interes=0, capitalfinal=0;
printf("\***********************************");
printf("\nCalcular los interes de un cliente\n");
printf("\***********************************\n\n");
printf("\n 1.)Ingresa el capital:\n\t");
scanf ("%f", & cap);
printf("\n 2.)Ingresa el porcentaje de interes:\n\t");
scanf ("%f", & p_int);
interes=cap*p_int;
if (interes>=7000)
{
capitalfinal=cap+interes;
printf("Su capital final es:%f\n", capitalfinal);
}
else
{
printf("\t*******************************\n");
printf("\t¡¡El interes es menor a 7000 !!\n");
printf("\t*******************************\n");
}
return(0);
}
Ejemplo - Condicionales

/*En un almacén se hace un 20 % de


descuento a los clientes cuya
compra supere los 1000 $. ¿Cual
será la cantidad que pagara una
persona por su compra?*/
Ejemplo - Condicionales
#include <stdio.h>
main ()
{
float p_compra, p_desc=0, desc=0;

printf("\*****************************************************");
printf("\nCalcular el precio de un articulo con el descuento\n");
printf("\*****************************************************\n\n");
printf("\n 1.)Ingrese el precio de compra:\n\t");
scanf ("%f", & p_compra);
if (p_compra>=1000)
{
desc= (p_compra*20)/100;
p_desc= p_compra - desc;
printf("El precio con el descuento es:%f\n", p_desc);
}
else
{
printf("\t*******************************\n");
printf("\t¡¡NO POSEE DESCUENTO !!\n");
printf("\t*******************************\n");
}
return(0);
}
Ejemplo - Condicionales

/* Programa que realiza


las cuatro operaciones aritméticas
fundamentales (+,-,*,/) */
Ejemplo - Condicionales
#include <stdio.h>
#include <conio.h>
void main()
{
int prim,seg,resul;
char oper;
clrscr();
printf("\nPrimer numero: ");
scanf("%d",&prim);
printf("\nOperacion a realizar (+,-,*,/): ");
oper=getche();
printf("\nSegundo numero: ");
scanf("%d",&seg);
Ejemplo - Condicionales
if(oper=='+')
resul=prim+seg;
if(oper=='-')
resul=prim-seg;
if(oper=='*')
resul=prim*seg;
if(oper=='/')
resul=prim/seg;
printf("\nEl resultado de la operacion %d
%c %d es %d",prim,oper,seg,resul);
getch();
}
Ejemplo - Condicionales

/* Programa que lee los tres lados de


un triángulo y detecta el tipo.*/
Ejemplo - Condicionales
#include <stdio.h>
main()
{
float uno,dos,tres;
clrscr();
printf("\nValor del primer lado: ");
scanf("%f",&uno);
printf("\nValor del segundo lado: ");
scanf("%f",&dos);
printf("\nValor del tercer lado: ");
scanf("%f",&tres);
if((uno==dos) && (dos==tres) && (uno==tres))
printf("\nEl triangulo es equilatero");
else if((uno!=dos) && (dos!=tres) && (uno!=tres))
printf("\nEl triangulo es escaleno");
else
printf("\nEl triangulo es isoceles");
getch();
}
El especificador de precisión
 El especificador de precisión sigue al
especificador de longitud mínima de
campo(si existe).Consiste en un punto
seguido de un entero. Su significado
exacto depende del tipo de dato al que se
aplique.
 Ejemplo: %10.4f imprime un numero de
al menos diez caracteres con cuatro
decimales. Si no se especifica precisión,
se muestra implícitamente seis.
El especificador de precisión
/*Especificador de precisión*/
#include <stdio.h>
int main (void)
{
printf ("%.4f\n",123.1234567);
printf ("%3.8d\n",1000);
printf ("%10.15s\n","Esta es una prueba
sencilla");
return (0);
}
Funciones Matemáticas
 fmod (): devuelve el resto de la división
entera a/b
/*Funciones matemáticas. Obtiene el resto de una
división*/
#include <math.h>
#include <stdio.h>
int main (void)
{
printf ("%1.1f", fmod(10.0, 3.0));
return (0);
}
Función RAND

/*Programa que genera un numero al


azar*/
Función RAND
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int magico;
int intento;
magico=rand();
printf("Adivine el numero magico:");
scanf("%d", & intento);
if (intento==magico)
{
printf("**CORRECTO**");
}
else
{
printf("\n\n**INCORRECTO**");
printf ("\n Usted se ha equuivocado. El numero magico es:%d", magico);
}
return (0);
}
Estructuras Ciclicas

- Estructura For

- Estructura While
Estructura For

La forma general para la instrucción for es:

for(inicialización; condición; incremento)


{
instrucciones ….
}
Estructura For
 La inicialización generalmente es una
instrucción de asignación que se utiliza para
iniciar la variable de control del bucle.

 La condición es una expresión relacional


que determina cuando finaliza el bucle.

 El incremento define como cambia la


variable de control cada vez que se repite
el bucle.
Estructura For
 Estas tres secciones principales deben estar
separadas por punto y coma.

 El bucle for continua ejecutándose mientras


la condición sea cierta.

 Una vez que la condición se hace falsa, la


ejecución del programa continua por la
instrucción siguiente al for.
PRACTICA 1

/*Uso de la estructura For


Visualiza los números del 1 al 10
Imprimir los números del 1 al 10 en
forma ascendente*/
Ejemplo sencillo del for
#include <stdio.h>
main()
{
int contador;
for (contador=1; contador <=10; contador++)
{
printf("%d\n", contador);
}
return (0);
}
PRACTICA 2

/*Uso de la estructura For


Visualiza los números del 1 al 10
Imprimir los números del 1 al 10 en
forma descendente*/
Ejemplo sencillo del for
#include <stdio.h>
main()
{
int contador;
for(contador=10; contador !=0; contador--)
{
printf("%d\n", contador);
}
return (0);
}
PRACTICA 3

/*Suma los números comprendidos


entre 100 y 200*/
#include <stdio.h>
main()
{
int contador, total=0;
for(contador=100; contador <=200; contador++)
{
total=total+contador; //total+=contador
}
printf("El total es %d", total);
return (0);
}
PRACTICA 4

/*Imprime los números pares que


haya entre 1 y 30*/
#include <stdio.h>
main()
{
int num;
printf("Visualiza los numeros pares comprendidos
entre 1 y 30\n");
for(num=0; num<=30; num=num+2)
{
printf("%d\n", num);
}
return(0);
}
PRACTICA 5

/*Imprime los números pares e


impares comprendidos entre 1 y
30*/
#include <stdio.h>
main()
{
int num;
printf("\n\nA.)Visualiza los números pares comprendidos entre 1 y
30\n");
printf("\n--------------------------------------------------------------\n\
n");
for(num=0; num<=30; num=num+2)
{
printf("%d\t", num); }
printf("\n\nB.)Visualiza los numeros impares comprendidos entre 1
y 30\n");
printf("\n--------------------------------------------------------------\n\
n");
for(num=1; num<=30; num=num+2)
{ printf("%d\t", num); }
return(0);
}
PRACTICA 6

/*Uso de la estructura For- Repite el


ciclo tres veces y muestra el turno
en que se encuentra*/
Ciclicas y Condicionales
#include <stdio.h>
main()
{
char alumno [30];
int contador, turno;
for(contador=1; contador <=3; contador++)
{
printf("\n1.)INGRESE SU NOMBRE\t");
scanf("%s", & alumno);
printf("\n2.)INGRESE EL CODIGO DEL TURNO\t");
scanf("%d", & turno);
if (turno==01)
{
Ciclicas y Condicionales
printf("\n ***USTED SE ENCUENTRA EN EL TURNO MAÑANA***\
n");
}
if (turno==02)
{
printf("\n ***USTED SE ENCUENTRA EN EL TURNO
TARDE***\n");
}
if (turno==03)
{
printf("\n ***USTED SE ENCUENTRA EN EL TURNO
NOCHE***\n");
}
}
return (0);
}
PRACTICA 7

/*Calcular el promedio de notas de n


alumnos*/
#include <stdio.h>
main()
{
float prom, nota, total=0.0;
int num, contador;
printf("**Calcular calificaciones**\n\n");
printf("¿Cuantos alumnos desea ingresar?\t");
scanf("%d",&num);
for (contador=1; contador<=num; contador++)
{
printf("Ingrese la nota final:\t\t");
scanf("%f", & nota);
total=total+ nota;
}
prom=total/num;
printf("El promedio de notas de este curso es de:\t%1.f", prom);
return (0);
}
PRACTICA 8

/*Visualiza en pantalla todos los


valores comprendidos entre 10 y 15
con un incremento de 0.5 y un
contador que muestre el ordinal
correspondiente a cada numero*/
Uso del Especificador de Precisión
#include <stdio.h>
main()
{
int cont=0;
float var;
for(var=10; var<=15; var=var+0.5)
{
printf("contador...valor\n");
printf("%-8d...%2.2f\n", cont, var);
//-8d: ajusta el argumento correspondiente a la izquierda.
//8d: ajusta el argumento a la derecha
++cont;
}
return(0);
}
PRACTICA 8

/*Obtener una tabla del código


ASCII*/
Tabla ASCII
#include <stdio.h>
main()
{
int x;
char c;
for (x=32; x<=255; x++)
{
c=x;
printf("%d...%c\t",x,c);
}
return(0);
}
Estructura While

Su forma general es :
While (condición)
{
instrucción/es
}
Estructura While
 Instrucción es una instrucción vacía, una
instrucción simple o un bloque de
instrucciones.

 La condición puede ser cualquier expresión y


cualquier valor distinto de cero es cierto.

 El bucle itera mientras la condición es cierta.

 Cuando la condición se hace falsa, el control


del programa pasa a la línea inmediatamente
siguiente al código del bucle.
PRACTICA 1

Utilizar la estructura While


Visualizar en pantalla los múltiplos
de 2, comprendidos entre 0 y 40.
Incluyendo los limites.
Estructura While
#include <stdio.h>
main()
{
int multiplo=0,cont=0;
while (multiplo<40)
{
multiplo=cont*2;
printf("%4d\n", multiplo);
++cont;
}
return(0);
}
PRACTICA 2

Utilizar la estructura While


Visualizar en pantalla los múltiplos
de 2, comprendidos entre 0 y 40.
Incluyendo los limites.
Utilizando constantes
Estructura While
#define maximo 40
#include <stdio.h>
main()
{
int multiplo=0, contador=0;
while(multiplo<maximo)
{
multiplo=contador*2;
printf("%4d\n", multiplo);
++contador;
}
return(0);
}
PRACTICA 3

Permitir la entrada de una cadena


de caracteres por teclado y hacerla
aparecer por pantalla .
Utilizar las funciones getchar y
putchar.
Estructura While
#include <stdio.h>
main()
{
int cont=0;
char cadena;
while((cadena=getchar())!='\n')
{
putchar(cadena);
}
return(0);
}
PRACTICA 4

Permitir la entrada de una cadena


de caracteres por teclado y hacerla
aparecer por pantalla .
Utilizar las funciones getchar y
putchar.
Indicar la cantidad de caracteres
ingresados.
Estructura While
#include <stdio.h>
main()
{
int cont=0;
char cadena;
while((cadena=getchar())!='\n')
{
putchar(cadena);
++cont;
printf("%3d\n", cont);
}
printf("\n %3d caracteres tecleados\n", cont);
return(0);
}
PRACTICA 5

Cuenta el numero de letras


presentes en el nombre del usuario
Estructura While
#include <stdio.h>
main()
{
char nombre[20];
int posicion=0;
printf("Por favor ingrese su nombre s/n?\n");
scanf("%s", &nombre);
while(nombre[posicion]>0)
{
posicion++;
}
printf("Su nombre consta de %d caracteres", posicion);
return(0);
}
PRACTICA 6

Ingresar el nombre por teclado


mientras la respuesta sea igual a
“s”.
Estructura While
#include <stdio.h>
main()
{
char resp, nombre[20];
printf("Desea ingresar algun nombre s/n?");
scanf("%c", &resp);
while(resp=='s')
{
printf("\n Ingrese su nombre:");
scanf("%s", & nombre);
}
return(0);
}

También podría gustarte