Logo Studenta

01 - Programación - Introducción

¡Este material tiene más páginas!

Vista previa del material en texto

Universidad Tecnológica Nacional 
Facultad Regional Haedo
Fundamentos de Informática 
Computación
CPB 1
1
Universidad Tecnológica Nacional
Facultad Regional Haedo
Fundamentos de Informática / Computación
Algoritmos - Variables – Tipos de Datos
Diagramas – Estructura Secuencial – Programa C 
2
Pasos a seguir, comúnmente, por los programadores:
Paso 1 – Análisis del Problema
Paso 2 – Diseño del Algoritmo
Paso 3 – Codificación - Creación del Programa
Paso 4 – Ejecución del Programa
1
2
Universidad Tecnológica Nacional 
Facultad Regional Haedo
Fundamentos de Informática 
Computación
CPB 2
3
 Partimos de un enunciado, el cual debe ser completo y no debe tener ambigüedades.
 Deben estar bien definidos :
 el conjunto de datos de entrada ( datos conocidos ).
 el conjunto de los datos de salida ( resultados, datos desconocidos ).
 el conjunto de condiciones que vinculan a los conjuntos de datos anteriores, (acciones 
primitivas, condiciones a evaluar, estructuras de programación).
Ejemplo Genérico
Enunciado del Problema : 
Se tiene una caja cerrada que contiene varias fichas de colores. 
Se deben separar las fichas rojas del resto de las fichas de la caja. 
4
Enunciado del Problema : 
Se tiene una caja cerrada que contiene varias fichas de colores. 
Se deben separar las fichas rojas del resto de las fichas de la caja. 
Datos de Entrada :
la caja cerrada
las fichas de colores
Datos de Salida :
Todas la fichas rojas
3
4
Universidad Tecnológica Nacional 
Facultad Regional Haedo
Fundamentos de Informática 
Computación
CPB 3
Vinculación entre datos de entrada y salida
para resolver el ejercicio planteado :
Acciones primitivas :
- abrir la caja
- mirar el interior de la caja
- tomar una ficha
- ponerla a la derecha
- ponerla a la izquierda
Condiciones a evaluar :
- hay fichas en la caja ?
- la ficha es roja ?
Procesador o Interlocutor: Suponer 
que quien va a ejecutar estas acciones 
primitivas y evaluar las condiciones es 
un niño de 8 años
Una acción se dice primitiva cuando su solo 
enunciado es comprendido por el procesador y 
puede ejecutarla sin necesidad de explicación 
adicional.
La descripción de una acción primitiva en un 
lenguaje determinado se llama sentencia o a 
veces también instrucción
5
Procesador o Interlocutor: Es una entidad capaz de comprender y ejecutar 
un conjunto de acciones elementales o primitivas y evaluar condiciones o 
proposiciones lógicas que tienen como resultado ser verdaderas o falsas.
En este paso se determina como hace el programa la tarea solicitada.
Un algoritmo especifica cada una de las acciones primitivas que pueden ser 
ejecutadas por un procesador, y que lleva a la solución de un problema, 
indicando el orden lógico de realización de cada acción. 
Estas acciones deben ser precisas y la cantidad de acciones debe ser finita, 
hay una primera y una última acción.
Algoritmo
• Secuencia de acciones
• Orden lógico
• Sin ambigüedades
Problema
Resuelve un …
ComputadoraOtorga 
inteligencia a …
Se comunica a …
Lenguaje de 
Programación
Se escribe en …
6
5
6
Universidad Tecnológica Nacional 
Facultad Regional Haedo
Fundamentos de Informática 
Computación
CPB 4
Algoritmo que resuelve el problema planteado :
Comenzar
abrir la caja ;
mirar el interior de la caja ;
Mientras haya fichas en la caja
Comenzar
tomar una ficha ;
Si la ficha es roja
ponerla a la derecha ;
Sino ponerla a la izquierda ;
mirar el interior de la caja ;
Fin ;
Fin .
En este algoritmo se ejemplifica a una estructura de repetición (ciclo Mientras ) 
y a una estructura de decisión ( Si – Sino )
7
Computadora
Una computadora es una máquina electrónica que acepta 
información digitalizada de entrada, la procesa de acuerdo a un 
programa que tiene almacenado en la memoria y produce 
resultados de salida
Salida de 
información
Entrada de 
información 
digitalizada
convertida en unos y ceros
Procesamiento de la 
información según un 
programa
Programa: conjunto de instrucciones o 
sentencias entendibles por la computadora 
8
convertida en caracteres 
comprensibles por los 
humanos
Una computadora es un procesador que puede ejecutar un repertorio 
concreto y finito de sentencias o instrucciones y que puede evaluar
proposiciones lógicas, todas ellas indicadas en un programa 
7
8
Universidad Tecnológica Nacional 
Facultad Regional Haedo
Fundamentos de Informática 
Computación
CPB 5
9
Consiste en traducir el algoritmo a un lenguaje de programación, capaz de ser 
interpretado por una computadora, lo que da como resultado un programa.
Es la realización, instrucción por instrucción, del programa por parte del procesador, 
la computadora.
Para la ejecución del programa los pasos que siguen son:
1- Edición: escribir el texto del programa en el editor del programa 
del lenguaje con el cual se va a trabajar (lenguaje C)
2- Compilación: traducción del lenguaje de programación al lenguaje de 
máquina, a cargo del compilador del lenguaje, con la 
consiguiente corrección de errores sintácticos
3- Ejecución: corrida del programa por parte de la computadora, con la 
consiguiente corrección de eventuales errores en tiempo de 
ejecución y de lógica.
10
Una variable es una dirección en el mapa de la memoria de la computadora, capaz 
de almacenar un valor por un lapso de tiempo, es decir, una variable es un espacio 
de memoria que contiene datos de un determinado tipo y que se identifica con un 
nombre (identificador). 
Se denomina variable pues el contenido de ese espacio de memoria puede variar 
durante la ejecución del programa que la utiliza.
El nombre de la variable representa la dirección de memoria que ocupa la variable.
El contenido de la variable es el valor almacenado en dicha posición de memoria
12
cantidad
Nombre del espacio de memoria o 
indirectamente, dirección de memoria de 
la variable
Contenido de la variable
Valor del dato almacenado en el 
espacio de memoria
Memoria Principal (RAM)
Celdas en el Mapa 
de Memoria
9
10
Universidad Tecnológica Nacional 
Facultad Regional Haedo
Fundamentos de Informática 
Computación
CPB 6
11
La sentencia de asignación permite almacenar un cierto valor en una cierta 
dirección de memoria, es decir darle un valor a una variable.
Cómo almacenamos o guardamos 
un valor o dato en una variable ?
Operación de Asignación
cantidad = 12
Identificador o nombre 
de la variable que 
almacena el valor Operador 
asignación en C
contenido 
( Debe ser 
conocido )
A la variable de tipo numérica cantidad se le asigna el valor 12, 
es decir, 
el valor 12 se almacena en la posición de memoria identificada como cantidad
12
El lenguaje C determina las siguientes condiciones al elegir nombres de variables :
 Deben empezar con una letra, luego pueden continuar letras y/o números
cant cant1 c1 | 1cant
 No pueden dejarse espacios
notaMax | nota Max
 No usar caracteres especiales tales como: signos de puntuación, ñ, °, %, $, #, etc.
porc anio | % p% %p año
Solo puede utilizarse el guión bajo ( underscore )
nota_Max
 No usar palabras reservadas al lenguaje, tales como:
auto – break – case – char – const – continue – default – do – double – else - enum
extern – float – for – goto – if – int – long – register – return – short – signed - sizeof
static – struct – switch – typedef – union – unsigned – void – volatile - while
11
12
Universidad Tecnológica Nacional 
Facultad Regional Haedo
Fundamentos de Informática 
Computación
CPB 7
13
Si bien el lenguaje C admite nombres de hasta 32 caracteres, para mejorar la 
legibilidad del programa se recomienda tener en cuenta :
 Elegir nombres significativos, es decir que representen al dato que van a guardar
 Elegir nombres cortos
Al elegir un nombre, este debe mantenerse a lo largo de todo el programa,pues:
porcentaje porcent porc p
Son todas variables diferentes, por lo tanto diferentes direcciones de memoria
El lenguaje C es sensible a mayúsculas y minúsculas por lo tanto :
cant Cant CANT cAnT
son todas variable diferentes, es decir representan distintas direcciones de 
memoria
14
Numéricas
Enteras
Reales
Palabra 
Reservada Formato
int
float
double
%d
Rango de 
valores
-32768 a 32767
3.4E-38 a 3.4E+38
1.7E-308 1.7E+308
long int
-2147483648 a 
2147483647
%f (punto flotante)
%lf (doble precisión)
Caracteres
(Alfanuméricos)
char %c (un caracter)Código ASCII
256 caracteres
%ld
(decimal)
(+/-)
13
14
Universidad Tecnológica Nacional 
Facultad Regional Haedo
Fundamentos de Informática 
Computación
CPB 8
15
EJEMPLO:
x = 2 ;
y = 3 ;
x = y + 1 ;
x = x + 1 ;
y = 2 + 3 * 5 ;
y = ( 2 + 3 ) * 5 ;
x = x + y ;
MEMORIA PRINCIPAL
x y
2
4
5
30
3
17
25
Una variable simple puede almacenar un solo valor :
1 variable simple = 1 sola posición de memoria = 1 solo valor almacenado
Cuando se asigna un valor a una variable se pierde el valor que la variable tenía 
almacenado previamente, es decir el nuevo valor asignado se sobrescribe al anterior
16
Ejemplo de declaración de variables:
int edad , hijos ; // declaración de dos variables enteras
float sueldo ; // declaración de una variable real
char sexo ; // declaración de una variable caracter
(El punto y coma final es el separador de instrucciones )
Asignación de valor a una variable :
Ejemplo 1:
edad = 32 ;
hijos = 2 ;
sueldo = 8500.00
sexo = 'F' ; // la constante carácter (valor) se escribe entre apóstrofos
Ejemplo 2: Declaración y asignación simultánea
int a = 2 , b = -5 , c , d ; // declaración y asignación 
c = a + b ;
d = b ; b = a ; a = d ; // intercambio de valores entre las variables a y b
se requiere de una variable auxiliar (d)
32
edad
2 
hijos
8500.00
sueldo
F
sexo
Espacios de Memoria
2
-5
a
-5
2
b
-3
c
-5
d
15
16
Universidad Tecnológica Nacional 
Facultad Regional Haedo
Fundamentos de Informática 
Computación
CPB 9
17
Es el algoritmo expresado con símbolos gráficos.
E Entrada de Datos  scanf( )
S
Salida de Datos  printf( )
Asignación  =
18
Estructura Condicional :
if - else
Estructuras de Repetición : 
for ( )
while ( )
V F
Condición
condición 
cuerpo
Inicialización , Cond , Incremento 
cuerpo
17
18
Universidad Tecnológica Nacional 
Facultad Regional Haedo
Fundamentos de Informática 
Computación
CPB 10
19
Enunciado del Problema.
En un curso de computación se conoce la cantidad máxima de vacantes al curso, 
la cantidad de alumnos nuevos inscriptos y la cantidad de alumnos 
recursantes inscriptos. Sabiendo que la cantidad de vacantes no fue cubierta, 
se desea calcular e informar :
a) Cantidad de vacantes libres.
b) Porcentaje de alumnos recursantes inscriptos.
Paso 1. Análisis del Problema
Datos de entrada : cantidad máxima de vacantes ( vmax )
cantidad de alumnos nuevos ( nuevos )
cantidad de alumnos recursantes ( rec )
Datos de Salida : cantidad de vacantes libres ( libres )
porcentaje de recursantes inscriptos ( porc )
Vinculación : Aritmética
Condición del 
Enunciado
20
Entrada de 
Datos
Salida de 
Datos
Asignación
Guardar un valor en 
una variable
Una estructura secuencial es una secuencia ordenada de instrucciones o 
pasos que llevan a la solución de un problema dado.
Esta secuencia de pasos sigue un orden lógico, todos ellos siempre van a 
ser ejecutados y la cantidad de pasos es finita
E vmax , nuevos , rec
total = nuevos + rec
libres = vmax - total
porc = rec * 100.0 / total
S libres , porc
19
20
Universidad Tecnológica Nacional 
Facultad Regional Haedo
Fundamentos de Informática 
Computación
CPB 11
21
E vmax , nuevos , rec
total = nuevos + rec
libres = vmax - total
porc = rec * 100.0 / total
S libres , porc
vmax
60
nuevos
33
rec
16
total
49
libres
11
porc
32.65
Prueba de escritorio del 
funcionamiento del algoritmo
22
Función printf( ) :
Es una función que permite escribir en pantalla texto y contenido de variables.
La sintaxis de su llamada es:
printf( “cadena_de_control” , lista_de_variables )
La cadena_de_control es una cadena de caracteres, que se debe escribir entre 
comillas dobles (").
En la función printf, el programador debe indicar el formato de salida de los datos 
que se van a mostrar por la pantalla, para ello, se puede hacer uso de:
- Texto ordinario (texto normal).
- Especificadores de formato de las variables a informar  %d %f %c
- Secuencias de escape  \n (salto de línea) \t (tabulador horizontal)
Ejemplo 1: Programa Pantalla
printf( “Hola”); Hola
printf( “\ncomo\nte va?\n” ); como
te va?
_
S
Cada \n produjo un 
salto de línea
21
22
Universidad Tecnológica Nacional 
Facultad Regional Haedo
Fundamentos de Informática 
Computación
CPB 12
23
\n produce un salto de línea
Ejemplo 2: Programa
int edad; 
float sueldo;
edad = 30;
sueldo = 26350.50;
printf( “Tu edad es %d y tu sueldo es $ %.2f\n” , edad , sueldo );
Tu edad es 30 y tu sueldo es $ 26350.50
_
Pantalla
%d formato de la variable 
cuyo contenido quiere informar 
en esa posición del texto
%.2f  %f es el formato de la variable real a 
informar en esa posición del texto.
El indicador .2 determina que se deben 
mostrar solo dos decimales del número real
24
Función scanf( ) :
La función scanf permite asignar a una o más variables, un valor (dato) recibido desde el teclado. 
La sintaxis de su llamada es:
scanf( “cadena_de_control” , & variable )
La cadena_de_control es una cadena de caracteres, que se debe escribir entre comillas dobles (")
en la cual el programador debe indicar el formato de entrada de los datos que se van a ingresar 
por teclado. 
- Especificadores de formato de las variables a asignar  %d %f %c
Ejemplo 1: Programa Pantalla
int edad; Ingresar edad: 26
printf( “Ingresar la edad: “ ); Tu edad es 26 años
scanf( “%d” , & edad ); _
printf( “Tu edad es %d años\n”, edad );
E
Este valor (26) se ingresa 
desde el teclado y al 
presionar ENTER se guarda 
en la variable edad
La función scanf produce un 
salto de línea
En Memoria
26
edad
NOTA: El lenguaje C es sensible a mayúsculas y minúsculas y la mayoría de las instrucciones en C se escriben en 
minúscula por lo que, tanto printf como scanf se escriben en minúscula.
23
24
Universidad Tecnológica Nacional 
Facultad Regional Haedo
Fundamentos de Informática 
Computación
CPB 13
25
#include <stdio.h> // para scanf y printf
#include <stdlib.h> // para system(“PAUSE”)
main ( )
{
int vmax, nuevos, rec, libres, total ;
float porc ;
// Ingreso de datos
printf("Ingresar cantidad maxima de vacantes al curso: ");
scanf("%d",&vmax);
printf("Ingresar cantidad de alumnos nuevos inscriptos: ");
scanf("%d",&nuevos);
printf("Ingresar cantidad de alumnos recursantes inscriptos: ");
scanf("%d",&rec);
// cálculo de resultados
total = nuevos + rec ;
libres = vmax - total ;
porc = rec*100.0 / total ;
// salida de resultados
printf("Cantidad de vacantes libres: %d", libres );
printf("\n"); 
printf("Porcentaje de alumnos recursantes: %0.2f %%\n ", porc );
system(“PAUSE”);
} Poner doble%Para agregar el signo 
porcentual (%) en la salida
Para que el resultado de la división sea real por 
lo menos uno de los operandos debe ser real
Pausa para detener 
la ejecución 
Salto de línea
Otra forma de hacer 
pausa en el programa 
es utilizando la función 
getch()
incluida en la librería 
conio.h
26
Datos de entrada 
ingresados desde 
teclado y asignados a 
cada variable por la 
función scanfDatos de salida 
(resultados) informados 
en pantalla por la 
función printf
system(“PAUSE”)
25
26

Continuar navegando