ejecución de programas

Anuncio
LENGUAJE DE
PROGRAMACIÓN
UNID ENE-ABR 2012
Dr. Alejandro Padilla Díaz
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
1
¿EL PORQUE ES NECESARIO EL LENGUAJE DE
PROGRAMACIÓN?
 Es necesario porque es una serie de
pasos
que
ayudan
a
resolver
mediante
una
computadora
o
periféricos especiales, las actividades
de nuestra vida cotidiana, pero con el
propósito
de
incrementar
los
resultados en menor tiempo posible y
con mayor eficiencia.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
2
HISTORIA DE LOS LENGUAJES DE
PROGRAMACIÓN
 Desde algunos puntos de vista, la historia de la teoría de
lenguajes de programación precede incluso al desarrolllo
de los propios lenguajes de programación. El cálculo
lambda, desarrollado por Alonzo Church, Max HL. Solis
Villareal y Stephen Cole Kleeneen la década de 1930, es
considerado ser uno de los primeros lenguajes de
programación del mundo, incluso pese a que tenía
intención de modelar la computación más que ser un
medio para que los programadores describan algoritmos
para un sistema informático. Muchos lenguajes de
programación funcional se han caracterizado por proveer
una "fina apariencia" al cálculo lambda, y muchos se
describen en sus términos.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
3
HISTORIA DE LOS LENGUAJES DE
PROGRAMACIÓN
 El primer lenguaje de programación (como tal)
que se propuso fue Plankalkül, que fue
diseñado por Konrad Zuse en los años 40, pero
no fue conocido públicamente hasta 1972 (y no
implementado hasta 2000, cinco años después
de la muerte de Zuse). El primer lenguaje de
programación ampliamente conocido y exitoso
fue
Fortran,
desarrollado
entre 1954 y 1957 por un equipo de
ivestigadores en IBM liberados por John
Backus.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
4
HISTORIA DE LOS LENGUAJES DE
PROGRAMACIÓN
 El éxito de FORTRAN condujo a la creación de un comité
de científicos para desarrollar un lenguaje de
programación "universal"; el resultado de su esfuerzo
fue
ALGOL
58.
Separadamente,
John
McCarthydel MIT desarrolló el lenguaje de programación
Lisp (basado en el cálculo Lambda), el primer lenguaje
con orígenes académicos en conseguir el éxito. Con el
triunfo de estos esfuerzos iniciales, los lenguajes de
programación se convirtieron en un tema candente en la
investigación en la década de 1960 y en adelante.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
5
DEFINICIÓN DE PROGRAMA
 Un programa es un conjunto de instrucciones u
órdenes basadas en un lenguaje de
programación que una computadora interpreta
para resolver un problema o una función
específica.
 Es la relación ordenada de actividades, en
informática se le conoce como la serie
codificada de instrucciones.
 Redacción de un algoritmo en un lenguaje de
programación.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
6
DEFINICIÓN DE PROGRAMA
 Conjunto de instrucciones ordenadas
correctamente que permiten realizar una tarea
o trabajo específico.
 Toda secuencia de instrucciones o indicaciones
destinadas a ser utilizadas, directa o
indirectamente, en un sistema informático para
realizar una función o una terea o para obtener
un resultado determinado, cualquiera que fuere
su forma de expresión y fijación.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
7
DEFINICIÓN DE PROGRAMA
 Conjunto secuenciado de instrucciones
que quedan escritas en un lenguaje
determinado con unos fines específicos.
Aunque en el lenguaje común con
frecuencia se denomina programa al
sistema operativo, la diferencia estriba,
precisamente, en la especificidad de
aquél frente al carácter de gestión
global de éste. La palabra software
engloba ambos.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
8
DEFINICIÓN DE CÓDIGO
FUENTE
 (Source code, code base). Texto escrito en un lenguaje
de programación específico y que puede ser leído por
un programador. Debe traducirse a lenguaje máquina
para que pueda ser ejecutado por la computadora o a
bytecode para que pueda ser ejecutado por un
intérprete. Este proceso se denomina compilación.

Acceder al código fuente de un programa significa
acceder a los algoritmos desarrollados por sus creadores.
Es la única manera de modificar eficaz y eficientemente
un programa.

DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
9
DEFINICIÓN DE CÓDIGO
FUENTE
 Liberar un código fuente significa compartir ese texto
con cualquier persona que lo desee, esto implica que
cualquiera puede analizarlo, copiarlo o modificarlo.
Las aplicaciones que liberan sus códigos suelen ser
gratuitas bajo licencia GNU. La liberación de un código
de un programa implica ciertos riesgos en cuando a la
seguridad del mismo, pues su funcionamiento exacto
queda expuesto. El código fuente no suele liberarse para
las aplicaciones comerciales y no puede obtenerse el
código fuente original a través de los programas ya
compilados.

DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
10
EJEMPLO DE UN CÓDIGO
FUENTE
//programa que lea 3 valores y obtiene el mayor y menor de los 3
#include<conio.h>
#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>
void main()
{clrscr(); int a,b,c,may,men;
cout<<"Dame 3 valores, separados por comas ";
scanf("%d,%d,%d",&a,&b,&c);
may=men=a;
if(b>may)
{may=b;
}
if(c>may);
{may=c;
}
if(b<men)
{men=b;
}
if(c<men)
{men=c;
}
cout<<"\n El mayor es "<<may;
cout<<"\n El menor es "<<men;
getch();
}
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
11
DEFINICIÓN DE CÓDIGO
OBJETO
 En programación, el código objeto es el
resultado de la compilación del código fuente.
Puede ser en lenguaje máquina o bytecode, y
puede distribuirse en varios archivos que
corresponden a cada código fuente compilado.
Luego un enlazador (linker) se encarga de
juntar todos los archivos de código fuente para
obtener el programa ejecutable.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
12
INTÉRPRETE VS. COMPILADOR
 INTERPRETE: Es un programa que lee línea a
línea un programa escrito en un lenguaje; en
lenguaje fuente y lo va traduciendo a un código
intermedio, para ejecutarlo.
 COMPILADOR: Es un programa que lee
totalmente un programa escrito en un
lenguaje; el lenguaje fuente, y lo traduce a un
programa equivalente a otro lenguaje, lenguaje
objeto.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
13
INTÉRPRETE VS. COMPILADOR
 A grandes rasgos un compilador es un
programa que lee un programa escrito es un
lenguaje, el lenguaje fuente, y lo traduce a un
programa equivalente en otro lenguaje, el
lenguaje objeto. Como parte importante de
este proceso de traducción, el compilador
informa a su usuario de la presencia de errores
en el programa fuente.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
14
Tareas
 INVESTIGAR:
 DIFERENTES TIPOS DE COMPILADORES
DE LENGUAJE CyC++
 Y ¿CÓMO SE CONOCEN SUS
DIFERENTES VERSIONES DE “C”?
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
15
LENGUAJE DE
PROGRAMACIÓN
UNID ENE-ABR 2012
Dr. Alejandro Padilla Díaz
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
16
EJECUCIÓN DE PROGRAMAS
 Generalmente el código fuente lo escriben
profesionales conocidos como programadores.
Se escribe en un lenguaje que sigue uno de los
siguientes dos paradigmas: imperativo o
declarativo y que posteriormente puede ser
convertido en una imagen ejecutable por un
compilador.
 Cuando se pide que el programa sea
ejecutado, el procesador ejecuta instrucción
por instrucción.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
17
EJECUCIÓN DE PROGRAMAS
 De acuerdo a sus funciones, se
clasifican
en
software
de
sistema y software de aplicación. En
los computadores actuales, al hecho
de ejecutar varios programas de
forma simultánea y eficiente, se le
conoce como multitarea.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
18
EJECUCIÓN DE PROGRAMAS
 Un programa, una vez escrito, puede ser ejecutado de
diversas formas:
1. Mediante un programa que va adaptando las
instrucciones conforme son encontradas. A este proceso
se lo llama interpretar y a los programas que lo hacen se
los conoce como intérpretes. Ejemplos de esto son bash,
clásico en estaciones Unix y que fue escrito para el
proyecto GNU o Python, cuya peculiaridad además de ser
multipropósito, está en su facilidad de uso y
productividad y de hecho, es usado en parte de los
proyectos Google y YouTube.3
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
19
EJECUCIÓN DE PROGRAMAS
2.- Traduciendo el código escrito del programa (lo
que se denomina código fuente), a su
equivalente en lenguaje máquina. A este
proceso se le llama compilar y al programa
traductor se le denomina compilador. Ejemplo
de esto es El lenguaje C, en sus diferentes
versiones que combina en su sintaxis
características de medio y bajo nivel y el
compilador gcc usado en el proyecto GNU.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
20
Almacenamiento de Programas
 Típicamente,
los
programas
se
almacenan
en
una memoria no volátil (por ejemplo un disco, una
memoria USB), para que luego el usuario de
la computadora, directa o indirectamente, solicite su
ejecución. Al momento de dicha solicitud, el programa es
cargado en la memoria de acceso aleatorio o RAM del
equipo, bajo el control del software llamado sistema
operativo, el cual puede acceder directamente
al procesador. El procesador ejecuta (corre) el
programa, instrucción por instrucción hasta que termina.
A un programa en ejecución se le suele llamar
también proceso. Un programa puede terminar su
ejecución en forma normal o por causa de un error,
dicho error puede ser de software o de hardware.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
21
Conocimiento
 Puede ser definido como el conjunto de
hechos y principios acumulados por la
humanidad, o el acto, hecho o estado de
conocer. Es la familiaridad con el
lenguaje, conceptos, procedimientos,
reglas, ideas, abstracciones, lugares,
costumbres y asociaciones, unida a la
habilidad de utilizar estas nociones en
forma efectiva para modelar diferentes
aspectos del universo que nos rodea.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
22
Conocimiento
 Los conceptos de conocimiento e
inteligencia están íntimamente ligados.
La inteligencia requiere de la posesión y
acceso al conocimiento. Conocimiento
no debe ser confundido con datos o
información. El conocimiento incluye y
requiere del uso de datos e información.
Además,
combina
relaciones,
dependencias, y la noción del saber con
datos e información. (HERRAMIENTA).
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
23
Conocimiento
 Una representación del conocimiento
puede ser un esquema o dispositivo
utilizado para capturar los elementos
esenciales del dominio de un problema.
Una representación manipulable es
aquella que facilita la computación. En
representaciones
manipulables,
la
información es accesible a otras
entidades que usan la representación
como parte de una computación.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
24
Conocimiento
 La manipulación del conocimiento
involucra además la selección de
objetos, entidades y rasgos que son
claves para las representaciones.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
25
Lenguajes con tipos fuertes vs.
Lenguajes con tipos débiles
 Los
lenguajes
débilmente
tipados permiten que un valor de un tipo
pueda ser tratado como de otro tipo, por
ejemplo una cadena puede ser operada
como un número. Esto puede ser útil a
veces, pero también puede permitir
ciertos tipos de fallas que no pueden ser
detectadas durante la compilación o a
veces ni siquiera durante la ejecución.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
26
Lenguajes con tipos fuertes vs.
Lenguajes con tipos débiles
 Los
lenguajes
fuertemente
tipados evitan que pase lo anterior.
Cualquier intento de llevar a cabo una
operación sobre el tipo equivocado
dispara un error. A los lenguajes con
tipos fuertes se les suele llamar de
tipos seguros.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
27
Lenguajes con tipos fuertes vs.
Lenguajes con tipos débiles
 Lenguajes
con
tipos
débiles
como Perl y JavaScript permiten un gran
número de conversiones de tipo implícitas. Por
ejemplo en JavaScriptla expresión 2 *
x convierte implícitamente x a un número, y
esta
conversión
es
exitosa
inclusive
cuando x es null, undefined, unArray o una
cadena de letras. Estas conversiones implícitas
son útiles con frecuencia, pero también pueden
ocultar errores de programación.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
28
Lenguajes con tipos fuertes vs.
Lenguajes con tipos débiles
 Las características de estáticos y fuertes son
ahora generalmente consideradas conceptos
ortogonales, pero su trato en diferentes textos
varia. Algunos utilizan el término de tipos
fuertes para referirse a tipos fuertemente
estáticos o, para aumentar la confusión,
simplemente como equivalencia de tipos
estáticos. De tal manera que C ha sido llamado
tanto lenguaje de tipos fuertes como lenguaje
de tipos estáticos débiles.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
29
LENGUAJE DE
PROGRAMACIÓN
UNID ENE-ABR 2012
Dr. Alejandro Padilla Díaz
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
30
Estructura de un Programa en C
Todo programa en C ó C++ cuenta con las
siguientes áreas:
a) Área de Inclusiones
b) Área de Definiciones
c) Área de Funciones.
Bibliotecas
declaraciones globales (contantes, tipos y variables)
main()
{
variables locales
sentencias
}
funcion1()
{
variables locales
sentencias
}
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
31
1.- Área de Inclusiones:
 Aquí se incluyen los nombres de las
librerías y bibliotecas donde se
encuentran las funciones de C++.
 Ejemplo:
#include <stdio.h>
//Indica que el compilador de C, busque en las
librerías de las funciones estándar de I/O
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
32
2.- Área de Definiciones:
Sirve para dar más legibilidad a los programas en C, ya que
aquí se escriben las equivalencias de algunos valores.
Esta área puede o no utilizarse dependiendo del
programa que se realice.
 Ejemplo:
#define N 100 // En el programa al utilizar la variable N, el
compilador entenderá que se sustituya por 100.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
33
3.- Área de Funciones:
1.
2.
3.
4.
Todo programa en C++, consta de una o más funciones. Se
debe tener una función llamada “main” en algún sitio del
programa ya que éste comenzará a ejecutarse con dicha
función. Por lo general main llamará a otras funciones que le
ayuden a realizar su trabajo.
Una función contiene proposiciones y variables. Las funciones
indican las operaciones que se van realizar y las variables
almacenan los valores utilizados durante los cálculos. Cada
función debe contener:
Una cabecera de la función, que consta del Nombre de la
Función, seguida de una lista de valores que la función que
llama, proporciona a la función que está invocando. Los
argumentos van encerrados entre paréntesis.
Las proposiciones de una función están encerradas entre llaves
{}.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
34
Comentarios en C y C++
 En el estándar ANSI C se puede comentar una o varias
líneas de código, esto se lleva a la practica con los
caracteres /* que indican el inicio del comentario y el
termino de los comentarios es indicado con los
caracteres */.
 En C++ se puede seguir usando la misma forma de
comentar una o varias líneas de código que se utiliza en
C. C++ también implementa su propia forma de
comentar codigo, con los caracteres // permiten
comentar una linea completa o una parte de ella.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
35
Ejemplos de comentarios en c++
 /* Este es un comentario que en el
lenguaje puede ocupar varias lineas y
para terminar con */
 int x; // declara una variable de tipo entera
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
36
Identificadores
 Los identificadores son los nombres usados para
referenciar las variables, funciones, etiquetas y otros
objetos definidos por el usuario. La longitud de un
identificador en turbo C puede variar entre uno y 32
caracteres. El primer carácter debe ser una letra o un
símbolo de subrayado y los caracteres siguientes pueden
ser letras, números o símbolos de subrayado.
 C y C++ es sensible a las minúsculas y mayúsculas.
 Un identificador no puede ser igual al de una palabra
reservada y no puede tener el nombre que alguna
función ya escrita o que se encuentre en la biblioteca.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
37
Palabras Reservadas(Clave):
 Son
aquellas
que
tienen
un
significado
especial
para
el
compilador, la cual no es posible
modificar o alterar y se escriben con
minúsculas.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
38
Algunas palabras reservadas son:
auto
default
float
register
typedef
asm
do
for
return
union
break
double
goto
short
unsigned
case
else
if
signed
void
char
enum
int
sizeof
volatile
const
extern
long
static
while
continue
far
near
struct
switch
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
39
Operadores
 Un operador es un símbolo monario o
binario que indica una acción, por
ejemplo el operador binario suma (+)
que representa la acción de suma de
dos operandos.
 Ejemplo: al = ej + jand ;
 Los operandos del ejemplo anterior
son: = y +
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
40
Operadores de asignación
 El operador de asignación básico es el
igual (=), la sintaxis es:
 Cualquier instrucción de la forma:

 variable = variable operador_expresión;
 donde operador puede ser entre otros alguno de los
operadores binarios +, -, *, / o %, esta instrucción
puede escribirse como:
 variable operador= expresión;
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
41
Operadores aritméticos (+, -, *, /, %)
 Los operadores aritméticos son muy similares
que otros lenguajes, + suma, - resta o menos
monario, * multiplicación, / división y %
modulo o resto de la división entera.
 El operador división (/) tiene dos variantes, si
uno de los operándoos es numérico real el
resultado de la división será real, en caso
contrario si los dos operándoos son numéricos
enteros el resultado será entero.
 En el operador modulo o resto de la división
(%) los operándoos deben ser enteros.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
42
Operadores de Increment y Decremento
 Incremento (++) y decremento (--),
prefijos y sufijos







Estos tipos de operadores son equivalente a un contador con
incremento en uno o decremento en uno, por ejemplo si al contador x
se le requiere incrementar en uno, la instrucción equivalente seria
x = x +1;
y con el operador incremento la instrucción seria
x++;
ó
++x;
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
43
Operadores relacionales
Operador
Descripción
==
!=
>
>=
<
<=
Igual
No igual
Mayor
Mayor o igual
Menor
Menor o igual
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
44
Operadores Lógicos
Operador
Descripción
&&
AND
||
OR
!
NOT
Los operadores lógicos, como los relacionales regresan como
resultado ya sean un valor verdadero o un valor falso. Para este
lenguaje un valor diferente de cero es verdadero y un valor de
cero es falso. Los operadores lógicos permiten formar expresiones
lógicas mas complejas, ya que por lo general una operación lógica
involucra una o más operaciones relaciónales.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
45
Realizar los siguientes
ejercicios:


Si tenemos:
A=18 b=1 c=4 d=45




Generar lo siguiente:
1) E=A+b 2) F=a*b+d
5) I=H-E
6) E++
9) K=A%7 10)L=A+A/3
3) G=A+B*c
7) I--
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
4) H=34+A
8) J*=2
46
LENGUAJE DE PROGRAMACIÓN
UNID ENE-ABR 2012
Dr. Alejandro Padilla Díaz
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
47
Tipos de Datos
 Nociones de Tipos de Datos
C y C++ manejan cinco tipos básicos
de
datos
los
cuales
son:
1)carácter, 2)entero, 3)coma
flotante, 4)coma flotante de
doble precisión y 5)sin valor. A
continuación se muestran cada uno
de estos y otros más:
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
48
Tipos de Datos en C y C++
 Y son los siguientes
Tipo de Dato
Char
Unsigned char
Signed char
Int
Unsigned int
Signed int
Short int
Unsigned short int
Long int
Bits
8
8
8
16
16
16
16
16
32
Bytes
1
1
1
2
2
2
2
2
4
Unsigned long int
Signed long int
Float
double
32
32
32
64
4
4
4
8
Rango de Valores
-127 a 128
0 a 255
-128 a 127
-32768 a 32767
0 a 65535
-32768 a 32767
-32768 a 32767
0 a 65535
-2147483648 a
2147483648
0 a 4294967295
-21474 a 21474
3.4E –38 a 3.4E +38
1.7E –308 a 1.7E
+308
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
49
Tipos de Datos en C y C++
 C++ añade otro tipo de dato el cual
es denominado como bool, este tipo
de dato es un booleano o lógico ya
que solo puede almacenar dos
posibles valores, verdadero o falso.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
50
MODIFICADORES DE TIPOS
 Algunos de los tipos de datos básicos pueden
ser precedidos por uno o varios modificadores,
un modificador altera el significado del tipo
base con la finalidad de que el programador
pueda seleccionar el que mas se ajuste a su
necesidad. Los modificadores son: signed,
unsigned, long y short y los tipos que
pueden ser afectados con estos modificadores
son:
Tipo
char
int
double
Modificador
signed, unsigned
signed, unsigned, long y short
Long
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
51
Tipo de Dato Estructura
 Una estructura es una colección de
variables de igual o diferente tipo de
dato que se referencia bajo un único
nombre.
 La sintaxis general es:

struct etiqueta_de_estructura {
tipo nombre_de_variable_o_elemento;
tipo nombre_de_variable_o_elemento;
...
} [variables_de_estructura] ;
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
52
Ejemplo: Tipo de Dato Estructura
Ejemplo:
//
struct direccion {
char calle[40];
char ciudad[30];
char estado[30];
unsigned long int codigo;
} datos1, datos2;
struct direccion dato_direc; // Declara una variable dato_direc de tipo
struct direccion
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
53
Constantes.
 Es un identificador que se declara en el
programa o función y que no puede ser
modificado o cambiarse de valor
 Sintaxis:
 #define <identificador> <valor>
 Ejemplos:




#define
#define
#define
#define
PI 3.1416
CLAVE 7
MENS_ERR “Error”
BELL ‘\007’
//carácter campana en ASCII
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
54
Variables





Todas las variables deben ser declaradas antes de su uso,
aunque algunas declaraciones pueden ser hechas en forma
implícita por el contexto.
Una declaración de variable debe especificar el tipo de ésta
y la variable o lista de variables de ese mismo tipo.
Si se declaran dos o más variables del mismo tipo, se
separan con coma (,) y al final va un punto y coma (;).



Sintaxis:

Tipo <identificador-1>, [identificador-2], ..., [identificador-n];
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
55
Variables
Ejemplos:
int numero,dia_19_ene_2012:
float v1, v2, v3;
char c,a,d,e,n,a;
Una variable también puede ser inicializada en su
declaración. Si el nombre es seguido por un signo de
igual y una expresión que sirve como un inicializador.
Ejemplo:
int dia=19;
int mes=1;
int anio=2012;
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
56
Ejemplo 01


//Realizar un programa que lea dos valores y obtenga el área de un rectángulo
//tomando el primero como base y el segundo como altura














#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
void main()
{clrscr();
int a,b,x;
printf("\n Dame la base");
scanf("%d",&b);
printf("\n Dame la altura");
scanf("%d",&a);
x=b*a;
printf("\n El area del rectangulo es %d",x);
getch ();
}



Términos nuevos: clrscr, printf, scanf, getch
Y las Librerías
Para ser descritas en clase del 19 de Enero de 2012
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
57
Ejemplo 02


//Realizar un programa que lea dos valores y obtenga el area de un rectangulo
//tomando el primero como base y el segundo como altura















#include<conio.h>
#include<stdio.h>
#include<iostream.h>
#include<stdlib.h>
void main()
{clrscr();
int a,b,x;
printf("\n Dame la base");
cin>>a;
printf("\n Dame la altura");
cin>>b;
x=a*b;
cout<<"\n El area del rectangulo es %d"<<x;
getch ();
}

Término nuevo para este ejercicio cin y cout.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
58
Ejercicios para clase:
1. Se deben de leer 3 valores separados por comas; para los 2 primeros
fungirán como base y altura para el área de un triángulo, para el
segundo y el tercero servirán para el área del rectángulo y para
obtener el cubo del tercer valor. NOTA: IMPRIMIR TODOS LOS
RESULTADOS
2. Se capturarán dos valores y se deberá obtener el resultado de la
división del primero entre el segundo.
Y
también el residuo del
segundo entre el primero.
3. Realizar un programa que lea los 3 valores de un prisma en cm y
deberá obtener primero, la multiplicacion de a por b por c, y en
seguida convertir a dm cuadrados, que al ser área será de la
siguiente manera:
Ejemplo:
Resultado en cm cuadrados 1398 a dm cuadrados 13.98
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
59
LENGUAJE DE PROGRAMACIÓN
ENE-ABR 2012
Dr. Alejandro Padilla Díaz
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
60
EJERCICIOS (PROGRAMAS),
EJEMPLOS DE TIPOS DE DATOS Y
VARIABLES.
//Programa que lea dos valores, y que obtenga el residuo del primero entre
//el segundo y que obtenga en otros resultados el 15% del 1er valor y 20 del 2º
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
void main()
{clrscr();
int a,b,por_a,por_b,resid;
cout<<"Dame 2 valores separados por comas:";
scanf("%d,%d",&a,&b);
resid=a/b;
por_a=a*.15;
por_b=b*.20;
printf("\n El 15%% de %d es %d",a,por_a);
printf("\n El 20%% de %d es %d",b,por_b);
printf("\n El residuo de %d entre %d es %d",a,b,resid);
getch();
}
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
61
Programa de dibujo de un Aguila
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
void main()
{clrscr();
}
printf("\n
printf("\n
printf("\n
printf("\n
printf("\n
printf("\n
printf("\n
printf("\n
printf("\n
printf("\n
printf("\n
printf("\n
printf("\n
printf("\n
printf("\n
printf("\n
printf("\n
printf("\n
printf("\n
printf("\n
printf("\n
getch ();
((");
\\``.");
\_`.``-.");
(,`.,.` `._,");
._ -.
._");
\ `--. ,` `.");
`--._ . .`.");
`--.--- `. ` `.");
`.-- `; .`._");
:- : ;. `.__,._ __");
`\ :
,-( `; o`>.");
`-.`: ,` `._ .: (,-`,");
\ ;
;. ,: ");
, - -:
;,` `___.,___.");
>^^ ^^-`
^ ^^:::::^.. -.");
`;^'_, (\`\ _ `::::::::::^
`---.");
`-(_, -'),)\`;
_
.::::^` `----._,-\\");
\_;`: `.- `-----' `--;-. `. ``.`--.___\\");
-^--'
\(-. .``-;`-=:-.__)");
'.`.`._ .-._`--.)");
24/ene/2012
`-^---^--.`->");
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
62
Programa de Dibujo de un Puma














#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
void main()
{clrscr();
printf("\n (^`-''-/^).___..--''^`-._");
printf("\n '6_6 ) `-. (
).`-.__.`)");
printf("\n (_Y_;)` ._ ) `._ `. ``-..-'");
printf("\n _. `-- _..-_/ /--`_.` ,`");
printf("\n (il),-`` (li),` ((!.-`");
getch ();
}
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
63
Ejercicios para realizar por el
alumno
I.-
Realizar un programa que imprima el
siguiente triángulo:
*
***
*****
*******
II.- Realizar un programa que lea 4 valores y
obtenga de ellos: El producto, La suma y su
Promedio(Media Aritmética).
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
64
LENGUAJE DE PROGRAMACIÓN
ENE-ABR 2012
Dr. Alejandro Padilla Díaz
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
65
AGENDA
ESTRUCTURAS DE CONTROL
 if/then/else (flujo)
 EJERCICIOS DE USO DEL if
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
66
if..else
 Esta instrucción permite llevar acabo
una evaluación o condición de diferentes
alternativas
o
expresiones
con
operadores relaciónales y lógicos.

 La instrucción if genera una afirmación y
la cláusula else genera una negación o
contrario de lo evaluado en la
instrucción if.

DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
67
if..else
 La cláusula else es opcional. Si una
instrucción if en su afirmación
requiere de una sola línea no es
obligatorio que contenga el bloque de
las llaves. Si en el caso de que se
requieran dos líneas o mas es
obligatorio que estén agrupadas entre
llaves.

DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
68
Sintaxis varias de la cláusula if:
if (expresión)
{
sentencia 1;
sentencia 2;
sentencia n;
}
if (expresión)
Sentencia;
if (expresión)
{
sentencia 1;
sentencia 2;
sentencia n;
}
else
{
sentencia 1;
sentencia 2;
sentencia n;
}
if (expresión)
Sentencia;
else
Sentencia;
if (expresión)
{
sentencia 1;
sentencia 2;
sentencia n;
}
else
Sentencia;
if (expresión)
Sentencia;
else
{
Sentencia 1;
Sentencia 2;
Sentencia n;
}
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
69
Ejercicio 1 de if
//Realizaar un programa que lea 3 valores separados por comas y que
//indique cual es el mayor y cual es el menor
#include<conio.h>
#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>
void main()
{clrscr();
int a,b,c,may,men;
cout<<"Dame 3 valores separados por comas ";
scanf("%d,%d,%d",&a,&b,&c);
may=men=a;
if(b>may)
{may=b;
}
if(c>may)
{may=c;
}
if(b<men)
{men=b;
}
if(c<men)
{men=c;
}
cout<<"\nEl mayor es "<<may;
cout<<"\nEl menor es "<<men;
DR. ALEJANDRO PADILLA DÍAZ
getch();
LENG. DE PROGRAMACIÓN
}
ENE-JUN 2012
70
Ejercicio 2 de if
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<iostream.h>
void main()
{int x;
clrscr();
printf("\n Dame un valor");
scanf("%d",&x);
if(x%4==0)
{printf("\n %d Es Múltiplo de cuatro",x);
}
else
{printf("\n %d NO Es Múltiplo de cuatro",x);
}
getch();
}
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
71
Ejercicios para resolver
1. Capturar un numero entero cualesquiera e informar si
es o no es múltiplo de 4 ( recordar el operador
mod(%), analizado en el tema de operadores
aritméticos).
2. Capturar de un empleado el sueldo diario y los días
trabajados , desplegarle su cheque semanal solo si
ganó mas de $1,000.00 en la semana, en caso
contrario desplegarle un bono de despensa semanal
de $300.00 mas el sueldo. El Sueldo semanal es
multiplicando el sueldo diario por los días trabajados.
3. Capturar una calificación de un estudiante y si es
mayor o igual a 6, imprimir APROBADO, y en el caso
contrario imprimir NO APROBADO.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
72
Instrucción switch
 Es una estructura lógica que permite
contolar la ejecución de instrucciones
cuando se tienen más de dos opciones
alternativas de acción; y que los
posibles valores que tomará la variable
de
control
(Selector),
estén
comprendidos en un conjunto ordenado
y finito de valores como lo es el tipo
entero (int) ó el carácter (char).
DR. ALEJANDRO PADILLA DInsDE
PROGRAMACIÓN
ENE-JUN
2012
73
Instrucción switch
 Formato:
Swicth (Selector)
{
case 1:
sentencia 1;
sentencia 2;
break;
case 2:
sentencia 1;
sentencia 2;
break;

default :
sentencia 1;
sentencia 2;
break;
}
Donde:
Selector Es una variable de tipo int, char o algún tipo de dato definido.

case N Es el caso específico que se seleccionará

break; Envía el control a la siguiente instrucción después del switch, si no se coloca, ejecutará el case
siguiente.
DR. ALEJANDRO PADILLA DÍAZ
LENG. DE PROGRAMACIÓN
ENE-JUN 2012
74
Descargar