Publicado el 1 de Septiembre del 2019
3.438 visualizaciones desde el 1 de Septiembre del 2019
480,6 KB
44 paginas
Creado hace 5a (12/03/2019)
Programación I
Teoría I
http://proguno.unsl.edu.ar
Horarios
Teorías:
Lunes de 11:00 – 13:00; Sala 3 (Rectorado)
Prácticas:
Comisión Practica: Licenciatura e Ingenierías Sala 3
Lunes de 9 a 11
Miércoles de 10 a 12
jueves de 11 a 13
Importante
Alumnos ingenierías 4hs de practica
Alumnos de licenciatura 6hs de practica
Condiciones de Regularización y/o
Aprobación de la Materia
Regularización:
1. Mínimo de 70% de asistencia a clases.
2. Aprobar el 50% de los prácticas de laboratorio.
3. Aprobar la evaluación o sus respectivas recuperaciones con una
nota mínima de seis.
4. Aprobar práctico máquina.
Promoción sin examen final:
1. Mínimo de 80% de asistencia a clases.
2. Aprobar el 70% de los prácticas de laboratorio.
3. Aprobar la evaluación o sus respectivas recuperaciones con una
nota mínima de siete.
4. Aprobar práctico máquina.
5. Aprobar el Coloquio
Fechas importantes 2019
Primer Laboratorio: 27/03, (funciones - arreglo)
Segundo Laboratorio 10/04, (recursión)
Tercer Laboratorio 29/04,(archivo)
Recuperación Laboratorios: 09/05 (única recuperación)
Parcial: 27/05, 9:00 (todos los temas vistos)
Recuperación Parcial: 03/06,
2da Recuperación : 24/06, hora y lugar a fijar.
Presentación Practico de Maquina 20/05
Entrega Pco. Máquina: 19/06, 10:00, sala 3
Lenguajes de Programación
Lenguajes de Máquina
Lenguajes de Ensamblado (Assembly)
Lenguajes de Alto Nivel
Lenguajes de Programación
Lenguajes de Máquina
Lenguaje “natural” de la máquina
Definido por el diseño del hardware
Dependientes de la computadora: set de
instrucciones propio.
Cadenas de 0s y 1s.
Lenguajes de Programación
Lenguajes de Ensamblado (Assembly)
Facilitan la programación y depuración
Cuentan con instrucciones para abreviar cadenas
de 0s y 1s.
Cuentan con un programa ensamblador.
Lenguajes de Programación
Lenguajes de Alto Nivel
Facilitan aún más la programación y
depuración.
Sentencias para agrupar conjunto de
instrucciones de máquina.
Programas traductores: compiladores e
intérpretes – Sintaxis
Portabilidad - Estándares
Paradigmas de Programación
Conjunto de reglas, métodos, principios de
programación, que comparten una filosofía
común de programación.
Imperativo
Funcional
Lógico
Objetos
Declarativo
Etapas en la construcción de un
programa
¿Problema?
Resolución
Codificación y
Edición
Archivo
fuente
Con errores
Prueba
Errores de sintaxis
Compilación
Sin
errores
¡A usar el
programa!
Sin errores
Archivo
ejecutable
Archivo
objeto
El Lenguaje de Programación C
Orígenes
Dennis Ritchie, Laboratorios Bell,
1969-1972
B, BCPL
Usado para escribir S.O. Unix
C Clásico (Kernighan & Ritchie )
ANSI C
Estructura general de un programa C
Todo programa C
Está formado por un conjunto de funciones
En particular, una función que no puede faltar
es la función main (programa principal).
Llama a otras funciones:
Definidas por nosotros en el programa
Predefinidas, en bibliotecas.
Estructura general de un programa C
/* Mi primer programa C */
#include <stdio.h>
main()
{
}
printf(“Hola mundo!\n”);
Principales Secuencias de Escape en C
Secuencia de
escape
\a
\n
\r
\t
\\
\”
\’
\?
Descripción
Carácter de alarma (campana del sistema).
New line (Nueva línea). Posiciona el cursor de la pantalla al comienzo
de la próxima línea.
Carriage return (Retroceso de carro). Posiciona el cursor al comienzo
de la línea corriente sin avanzar a la próxima.
Tabulador horizontal. Mueve el cursor hasta la próxima marca de
tabulación.
Backslash. Usado para imprimir el carácter backslash.
Comilla. Usado para imprimir la comilla.
Apóstrofo. Usado para imprimir el apóstrofo.
Signo de interrogación. Usado para imprimir el signo de interrogación.
Datos y Tipos de Datos
Dato: representación en la computadora de
un aspecto de la realidad.
Constantes simbólicas o literales
Variables
Tipo de Dato: conjunto de valores que
comparten las mismas características y
operadores.
Constantes y Variables
Constantes o literales
Ejemplos en C: 12, ‘a’, “hola”, 23.5
Variables
Nombre (Identificador)
En C, letras, números y el carácter de subrayado (_), no
pueden comenzar con un número.
Cualquier longitud, reconoce hasta 31 caracteres.
Case sensitive.
No acepta palabras claves.
Tipo de dato
Valor
52.6
peso
Otro programa sencillo en C
#include <stdio.h>
main()
{
int entero1, entero2, suma;
printf(“Ingrese el primer entero\n”);
scanf(“%d”, &entero1);
printf(“Ingrese el segundo entero\n”);
scanf(“%d”, &entero2);
suma = entero1 + entero2;
printf(“La suma es %d\n”, suma);
}
Tipos de datos en C
Básicos
Aritméticos
Enteros
Caracteres
Flotantes o reales
Tipos de datos
en C
void
Arreglos
Estructuras o registros
Uniones
Estructurados o
Compuestos
Punteros
Tipos de datos aritméticos en C
Enteros
Tres tamaños
short int
int (tamaño del registro del procesador)
long int
Valores con signo, por defecto
Modificador unsigned
Se puede omitir int cuando va alguno de los
modificadores (short, long, unsigned)
Tipos de datos aritméticos en C
Caracteres (char)
1 carácter (1 byte)
char x;
char w,y;
char z = ‘A’;
un char un entero de 8 bits.
char z = 65;
z = z + 1;
printf(“El código ASCII de %c es %d\n”,z,z);
Tipos de datos aritméticos en C
Flotantes o Reales
Tres tipos:
float
double
long double
(precisión simple)
(precisión doble)
(precisión extra)
Ejemplo
#include <stdio.h>
main()
{
“ cm: ”);
float radio;
printf(“Ingrese el radio del circulo en”
scanf(“%f”, &radio); /* lee el radio*/
printf(“El circulo de radio %f tiene una”
“ superficie de %f cm2\n”, radio,
3.14159265358979323846 * radio *
radio);
Uso de constante simbólica
Preprocesador de C
#include <stdio.h>
#define PI 3.14159265358979323846
main()
{
float radio;
printf(“Ingrese el radio del circulo en cm: “);
scanf(“%f”, &radio);
printf(“El circulo de radio %f tiene una
superficie de %f cm2\n”,radio, PI*radio*radio);
}
Operadores y expresiones
aritméticas en C
Operador
aritmético
Suma
Resta
Multiplicación
División
Módulo
Operador
en C
Expresión
aritmética
Expresión
en C
+
-
*
/
%
x + 20
a - b
xy
x:y
u mod k
x + 20
a - b
x * y
x / y
u % k
Operadores y
Expresiones Relacionales en C
Operadores
relacionales
algebraicos
Operadores
relacionales en C
Ejemplo de uso
>
<
==
!=
<=
>=
>
<
x == y
x != y
x <= y
x >= y
x > y
x < y
Operadores y expresiones lógicas en C
No hay tipo booleano o lógico
0 representa falso
1 representa verdadero
1 == 1 1 (verdadero)
10 <= 5 0 (falso)
i = 10; if (i) printf(“verdadero\n”);
40 + (3 != 4)
Operadores y Expresiones Lógicas en C
Operador
lógico
and
or
not
Operador
lógico en
C
&&
||
!
Ejemplo de uso
Significado
i != 0 && j > 1
c == ‘a’ || n == 0
!encontrado
i distinto de 0 y j mayor
que 1
c igual al carácter ‘a’ o n
igual a 0
la variable encontrado
(encontrado igual 0)
no es verdadera
Orden de evaluación:
0 && _ 0
1 || _ 1
Operador de Asignación =
#define K -4
int i = 2;
i = K * 2;
i= i + 5;
En C, la asignación es una operación que se
vuelve una sentencia al seguirla por ;
r = (i = K + 1) + 4;
Operadores de asignación aritméticos
Operador
de
asignación
aritmético
Ejemplo
Versión
descomprimida
Resultado asignado a
variable a asumiendo
la declaración
int a = 3;
+=
-=
*=
/=
a+=4
a-=4
a*=4
a/=4
a = a + 4
a = a - 4
a = a * 4
a = a / 4
7
-1
12
0
Operadores de
incremento y decremento en C
Operador
Explicación
Ejemplo de uso
Efecto
a++
++a
a--
--a
Devuelve el valor de a
y luego lo incrementa
en 1.
Incrementa el valor de
a en 1 y devuelve ese
valor.
Devuelve el valor de a
y luego lo decrementa
en 1.
Decrementa el valor de
a en 1 y devuelve ese
valor.
i = a++;
i = ++a;
printf(“%d”, a--);
printf(“%d”, --a);
Asigna el valor de a a la variable i y luego
incrementa a en 1. Es equivalente a
i = a; a = a + 1;
Incrementa en 1 la variable a y ese valor lo
asigna a la variable i. Es equivalente a
a = a + 1; i = a;
Imprime el valor de a y luego decrementa
en 1 su valor. Es equivalente a
printf(“%d”, a); a = a - 1;
Decrementa en 1 la variable a y luego
muestra su valor por pantalla. Equivalente a
a = a – 1; printf(“%d”, a);
Conversiones de Tipos
Cambiar un tipo de dato por otro
Implícitas o automáticas
En tiempo de compilación o de ejecución
En C: promoción de tipos.
Explícitas
Por medio de una construcción sintáctica del lenguaje.
En C: casting operador cast
Conversiones Implícitas de Tipos en C
Promoción de Tipos
int i = 5;
float f = 3.0;
float y;
f = i;
y = f + i;
Conversiones Explícitas de Tipos en C
Operador cast
Forma general: (nombre-de-tipo) expresión
Ejemplos:
float resultado;
int i = 9;
int j = 5;
resultado = i / j;
resultado = (float)i / j;
resultado = i / (float)j;
resultado = (float)(i / j);
resultado = (float)i / (float) j;
Programación Estructurada
Metodología de programación
C. Böhm y G. Jacopini, 1966
Edsger W. Dijkstra, 1968
Estructuras de Control
Secuencia
Selección
Iteración
Secuencia
Sigue el orden de lectura tradicional de los
idiomas occidentales.
La ejecución de las sentencias se hace en
forma secuencial:
Una después de la otra, y no se ejecuta la
segunda sentencia hasta que la primera haya
terminado de ejecutarse, y así sucesivamente.
Secuencia en C
; es un finalizador de sentencia:
y = 4 y j++ y scanf(…)
son expresiones en C
y = 4; j++; scanf(…); son sentencias en C
{ } para crear sentencias compuestas o bloques:
Agrupan declaraciones y sentencias.
Ejemplo: llaves en declaración de función main.
Selección
Selección de rama vacía o simple
if (cond)
sentencia;
Ejemplos:
if (a==1 && b)
a++;
if (a==1 && b){
a++
Comentarios de: Programación I - Teoría I (0)
No hay comentarios