Documente Academic
Documente Profesional
Documente Cultură
PROGRAMACION
HISTORIA
El conjunto de rdenes e instrucciones que se dan al
computador para que resuelva un problema se
denomina programa.
En los primeros tiempos de la informtica, la
programacin se efectuaba en el nico lenguaje que
entiende el microprocesador: cdigo binario , tambin
denominado lenguaje de mquina.
A principios de los 50 se cre una notacin simblica,
denominada cdigo de ensamblaje (ASSEMBLY).
HISTORIA
Conforme los computadores fueron introducindose
en el mundo empresarial y acadmico, aquellos
primitivos lenguajes fueron sustituidos por otros ms
sencillos de aprender y ms cmodos de emplear.
Estos lenguajes, llamados de alto nivel, tienen una
estructura que se adapta ms al pensamiento humano
que a la forma de trabajar del computador.
Ejemplo de lenguajes BASIC, PASCAL, C, etc.
TIPOS DE LENGUAJES
BAJO NIVEL
Entiende
solamente
la mquina
(binario)
ALTO NIVEL
Entiende el programador
comn
Ej. Visual Basic
Java
Perl
C++
Interpretacin
Programa en L.
De alto Nivel
Traduce instruccin a
instruccin y , de esta forma,
favorece la interactividad, la
depuracin y puesta a punto del
programa, la ejecucin
inmediata de una orden, etc.
Entre los lenguajes que suelen
ser interpretados, se
encuentran BASIC, LOGO.
Interpretacin
Ejecucin
(Un solo paso)
Compilacin
Programa en L.
De alto Nivel
Compilacin
(Traduccin)
Programa Fuente
El compilador traduce todo el programa
de golpe, dejndolo listo para ser
ejecutado.
De esta forma, se logra mayor rapidez
en la ejecucin y , adems, se liberan
recursos de la memoria, pues el
programa, una vez compilado, no exige
que el traductor est residente en
memoria, como sucede con los
intrpretes. Por ejemplo los lenguajes
que siempre son compilados se pueden
destacar PASCAL, FORTRAN, COBOL,
etc.
Programa en L. De
Bajo Nivel
Programa Objeto
Ejecucin
(Dos pasos)
Detalle de la
Compilacin
Datos
Procedimiento
Fuente 1
Procedimiento
Fuente 2
Mdulo
Objeto 1
Compilador
Procedimiento
Fuente 3
Mdulo
Objeto 2
Mdulo
Objeto 3
Enlazador
Programa
Binario
Ejecutable
.OBJ
Informacin
FUENTE .CPP
.BAK
.EXE
Fases de la Compilacin
LENGUAJE DE
PROGRAMACION C++
HISTORIA
En los Laboratorios Bell (New Jersey) trabajaron dos investigadores Kenneth
Thompson y Dennis Ritchie creadores del sistema operativo UNIX, en 1969.
En 1970, Thompson desarroll un lenguaje experimental, al que llam B. Dos
aos despus, Ritchie sebas en B para crear un nuevo lenguaje de propsito
general, que denomin C.
Como no depende de la arquitectura del hardware, C es uno de los lenguajes
ms portables del mercado.
A principios de los 80, Bjarne Stroustrup dise una ampliacin de C y en 1984,
la convirti en un compilador que llam C++, especialmente enfocado a la
programacin orientada a objetos
PROGRAMACION EN C+
+
ESTRUCTURA DE UN
PROGRAMA
Todo programa en C se construye
bsicamente mediante tres tipos de
objetos:
Funciones.
Variables.
Tipos de datos.
ESTRUCTURA DE UN
PROGRAMA
< comandos del preprocesador>
<definicin de tipos>
<prototipos de funciones>
<variables>
<funciones>
Las funciones a la vez tienen la siguiente estructura:
<tipo>nombre_de_la_funcin(<declaracin de parmetros>)
{
<declaraciones locales>
CUERPO
<sentencias>
}
ENCABEZAD
O
De todas las funciones que se declare, una debe ser llamada main, ste es
El cuerpo principal del programa, desde aqu se pueden llamar a otras
Funciones.
ESTRUCTURA DE UN PROGRAMA
#include <biblioteca1.h>
#include <biblioteca2.h>
... declaraciones de funciones ...
Definicin
de
Cabecera
y/o
Ficheros
Declaraci
n de Datos
Funcin
Principal
Otras
Funciones y/o
Procedimiento
s
/*Variantes de Definicin*/
#include<nombre_de_la_biblio
teca>
#define
nombre_de_la_constante
//Funcin principal
void main()
{
definicin de variables
locales;
instrucciones del programa;
}
ESTRUCTURA DE UN
PROGRAMA
El inicio del programa debe llevar:
El smbolo de numeral (#) la sentencia include,
y entre signos de mayor y menor que (<>) el
nombre de la librera o fichero.
Seguidas de las libreras, para que Incluya en el
programa
la
directiva
la
cual
contiene
las
ESTRUCTURA DE UN
PROGRAMA
#include <stdio.h>.- Contiene las funciones de
entrada y salida de datos.
#include <conio.h>.- Declara varias funciones
usadas
llamando
la
consola
del
sistema
operativo.
#include <string.h>.- Manejo de cadenas.
#include <stdlib.h >.- Memoria dinmica.
#include <math.h >.- Rutinas matemticas.
Ejemplo
#include<iostream>
Comandos del
preprocesador
using namespace
std;
Funcin principal
main()
{
cout << hola
mundo\n;
}
Cuerpo de la funcin
(sentencias)
Ejemplo
#include<stdio.h>
int a,b;
Comandos del
preprocesador
Definicin de variables
Funcin principal
main()
{
a=5;
Cuerpo de la funcin
b=12;
(sentencias)
suma=a+b;
suma=suma+b;
}
TIPOS DE DATOS
CARCTER
ENTERO
TIPO
TAMAO EN
BITS
RANGO MINIMO
char
-128 a 127
unsigned char
0 a 255
signed char
-128 a 127
int
16
-32768 a 32767
unsigned int
16
0 a 65535
signed int
16
short int
16
16
0 a 65535
16
long int
32
-2147483648 a 2147483647
32
32
0 a 42949667295
TIPOS DE DATOS
PUNTO
FLOTANTE
SIN TIPO
TIPO
TAMAO EN
BITS
RANGO MINIMO
float
32
(3.4e-38 a 3.4e+38)
6 dgitos de precisin
double
64
(1.7e-308 a 1.7e+308 )
10 dgitos de precisin
long double
80
(3.4e-4932 a 3.4e+4932)
10 dgitos de precisin
void
Sin valor
CONSTANTES
Son valores fijos que no pueden ser alterados por el programa.
Constantes Carcter (char)
Pueden representar un nico carcter (cdigo ASCII) y van encerradas entre
apstrofes. Ejemplo: b, *.
Constante Cadena
Es una secuencia de caracteres encerrada entre comillas.
Ejemplo de una cadena
a es una cadena
a es un caracter
CONSTANTES
Constantes Enteras
Especifica nmeros enteros, es decir sin parte fraccionaria. 10, -100
Octal: Una constante octal comienza por el carcter 0, Ejm:
020 (16 en decimal)
Hexadecimal: Una constante hexadecimal comienza por los caracteres 0x, Ejm:
0x20 (32 en hexadecimal)
Usando un sufijo se puede especificar de forma precisa el tipo de una constante
entera:
SUFIJO
TIPO DE DATO
CONSTANTE
U
Unsigned int
34500U
Long int
34500L
Float
-123F
Long double
1550.1L
IDENTIFICADORES
Son los nombres utilizados para referencia las constantes, variables, funciones,
etiquetas y otros objetos definidos por el usuario.
La longitud de un identificador puede variar entre uno y varios caracteres
El primer caracter debe ser siempre una letra o el caracter de subrayado,
los restantes pueden ser nmeros, letras o el subrayado.
Las letras minsculas y maysculas se tratan como distintas.
DECLARACION DE VARIABLES
Las variables deben ser declaradas antes de poder ser usadas:
tipo lista_variables;
tipo: tipo de dato vlido con cualquier modificador
Nombres de identificadores separados por comas
; , la sentencia de declaracin siempre finaliza con ;
Ejm: int, a,b,c;
float contador, valido, calculo;
char nombre, curso;
Lista_variables:
CONSTANTES SIMBOLICAS
Existen dos formas de definir constantes simblicas:
Preprocesador #define
Esta comienza por #, se sita normalmente fuera de las funciones, al inicio, estas
no terminan con punto y coma, siempre va una sentencia por lnea.
Ejm: #define PI 3.141516
El modificador const
Se declara utilizando la palabra const antes de las palabras claves para
identificar el tipo: int, float, double, adems como no puede ser cambiada se
debe inicializar su declaracin.
Ejm: const float PI = 3.141516;
const int MAX =100, MIN = 1;
CONSTANTES SIMBOLICAS
Para
COMENTARIOS
Los
int main()
{
/* Esto es un comentario de varias
lineas.*/
return(0);
}
OPERADORES ARITMETICOS
El
OPERADORES ARITMETICOS
Divisin
4 /
4.0
4 /
4.0
3 --> 1
entero
/ 3 --> 1.333 real
3.0 --> 1.333 real
/ 3.0 --> 1.333 real
Pre/post incrementos
Los operadores unarios (++) y (--)
representan operaciones de incremento
y decremento, respectivamente.
a++; /* similar a a=a+1 */
Ejemplos:
a=3; b=a++; /* a=4, b=3 */
a=3; b=++a; /* a=4, b=4 */
a=3; b=a--; /* a=2, b=3 */
OPERADORES DE
ASIGNACION
El operador de asignacin en C++ es el
igual(=)
a=b+3;
OPERADORES RELACIONALES
Los operadores de relacin son:
Igual (==)
Distinto (!=)
Mayor (>) y Mayor o igual (>=)
Menor (<) y Menor o igual (<=)
El resultado de un operador de
comparacin es un valor entero (0 es
falso) y (distinto de 0 verdadero).
a=3>7 /* a vale 0 (falso) */
OPERADORES LOGICOS
Sobre expresiones booleanas (enteros)
se definen los siguientes operadores
lgicos:
And lgico (&&)
Or lgico (||)
Negacin lgica (!)
Ejemplo
a=(3>2 || 5==4) && !1 /* Falso */
ENTRADA Y SALIDA DE
DATOS
Se utiliza las funciones de biblioteca:
scanf para la entrada de valores.
Sintaxis es la siguiente:
scanf ("%d",
&variable);
Losmodificadoresdelcontrolestarnformadosporelcaracter%
seguidodeuncaracterdeconversin.Losargumentosindicados
sern,nuevamente,lasvariables.
Laprincipalcaractersticadelainstruccinscanfesquenecesita
saberladireccindememoriaenqueseencuentralavariablepara
poderalmacenarlainformacinobtenida.Paraindicarleestaposicin
utilizaremoselsmboloampersand(&),quecolocaremosdelantedel
nombredecadavariable.
ENTRADA Y SALIDA DE
DATOS
printf para la salida de informacin.
Sintaxis es la siguiente:
printf ("El valor es %d",
variable);
FORMATOS DE LECTURA O
IMPRESIN
Los modificadores ms utilizados son:
%c
%i
Un nico carcter,
Un entero
%d
Un entero con signo, en base
decimal
%u
decimal,
%e
con exponente
%f
sin exponente
%s
ENTRADA Y SALIDA DE
DATOS
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();
VARIABLES
Variable Global
#include
<stdio.h>
int x;
int main()
{
}
Variable Local
#include
<stdio.h>
int main()
{
int x;
}
ESTRUCTURA DE DECISIN
Estructura de decisin If-Else
Seleccin Simple: SI
Ejemplo en C: if
Seleccin Doble: SI-SINO
Ejemplo en C: if else
Seleccin Doble en cascada: SI-SINO-SI
Ejemplo en C: if else { if else { }
. }
ESTRUCTURA DE DECISIN
Estructura de decisin Simple
Pro
Pro >= 14
#include <stdio.h>
#define VALOR 14
V
F
Aprobado
FIN
Codificacin en Lenguaje C
/* Promedio curso:
El programa recibe como dato el promedio de un
alumno en un curso , escribe Aprobado si su
promedio es mayor o igual a 14 */
void main()
{
float Pro;
printf( "Ingrese el promedio del curso: \a \n " );
scanf( "%f", &Pro );
if ( Pro >= VALOR)
printf( " \Aprobado\ \n" );
}
ESTRUCTURA DE DECISIN
Estructura de decisin Dobles
Codificacin en Lenguaje C
/* Promedio curso: El programa recibe como dato el promedio de
un alumno en un curso , escribe Aprobado si su promedio es
mayor o igual a 14, sino escribe Reprobado */
INICIO
#include <stdio.h>
#define VALOR 14
Pro
Pro >= 14
Aprobado
void main()
{
float Pro;
printf( "Ingrese el promedio del curso: \a \n " );
scanf( "%f", &Pro );
if ( Pro >= VALOR)
printf( " \Aprobado\ \n" );
else
printf( " \Reprobado\ \n" );
Reprobado
FIN
ESTRUCTURA DE DECISIN
Condiciones Anidadas
if (condicin1)
{ /*bloque1*/}
else if(condicin2)
{ /*bloque2*/}
else if(condicin3)
{}
else if(condicinN)
{/*bloqueN*/}
else
{/*bloqueN+1*/}
CONDICIONES ANIDADAS
IF ANIDADAS
if (condicin)
if (condicin)
Instrucciones a ejecutar cuando la condicin es verdadera;
else
EJEMPLO
#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();
}
ESTRUCTURA SWITCH
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>
case valor2: <sentencias>
...
default: <sentencias>
}
EJEMPLO
#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........ ");
}
}
ESTRUCTURAS DE CONTROL
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;
}
EJEMPLO
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;
}
}
LA SENTENCIA do-while
Verifica la condicin al finalizar el bucle.
SINTAXIS
do
{
Sentencias;
} while(condicin);
EJEMPLO
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 );
}
Do-While puede ser til en el desarrollo de programas con mens.
SENTENCIA FOR
Permite inicializar los controles del bucle.
SINTAXIS
for(indice=inicio bucle; indice=fin bucle; indice
incrementa++)
{
sentencias dentro del bucle
}
EJEMPLO
#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;
}
Arreglos
Arreglos o arrays?
Un arreglo (array) es una coleccin de
datos del mismo tipo, que se
almacenan en posiciones consecutivas
de memoria y reciben un nombre
comn.
Arreglos
Para referirse a un determinado
elemento de un array se deber utilizar
un ndice, que especifique su posicin
relativa en el array. Un arreglo es una
coleccin finita, homognea y
ordenada de elementos.
ARREGLOS
Finita:Todo
ARREGLOS
Los arreglos se clasifican de acuerdo
con el nmero de dimensiones que
tienen. As se tienen los:
Unidimensionales (vectores)
Bidimensionales
(tablas o matrices)
Multidimensionales
dimensiones)
(tres o ms
Unidimensionales y
bidimensionales
ARREGLOS
ARREGLOS O ARRAY
VECTORES
Es un array unidimensional, es decir,
solo usa un ndice para referenciar a
cada uno de los elementos.
Se declara:
tipo nombre [tamao];
EJEMPLO
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 */
EJERCICIO
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;
}
MATRICES
Son arreglos bidimensionales y deben
ser
declarados
con
corchetes