Está en la página 1de 13

Universidad Tecnológica Nacional Fundamentos de Informática

Facultad Regional Haedo Computación

Universidad Tecnológica Nacional


Facultad Regional Haedo

Fundamentos de Informática / Computación

Algoritmos - Variables – Tipos de Datos


Diagramas – Estructura Secuencial – Programa C

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

CPB 1
Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

 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.

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

CPB 2
Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

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.

Vinculación entre datos de entrada y salida Procesador o Interlocutor: Suponer


que quien va a ejecutar estas acciones
para resolver el ejercicio planteado :
primitivas y evaluar las condiciones es
Acciones primitivas : un niño de 8 años

- abrir la caja
- mirar el interior de la caja
- tomar una ficha
Una acción se dice primitiva cuando su solo
- ponerla a la derecha enunciado es comprendido por el procesador y
puede ejecutarla sin necesidad de explicación
- ponerla a la izquierda adicional.
Condiciones a evaluar : La descripción de una acción primitiva en un
lenguaje determinado se llama sentencia o a
- hay fichas en la caja ? veces también instrucción
- la ficha es roja ?

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.

• Secuencia de acciones
Resuelve un …
• Orden lógico
• Sin ambigüedades
Problema

Algoritmo
Se escribe en … Se comunica a …

Lenguaje de
Programación Otorga Computadora
inteligencia a …

CPB 3
Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

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 )

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

Entrada de Procesamiento de la
información Salida de
información según un
digitalizada información
programa
convertida en caracteres
convertida en unos y ceros
comprensibles por los
Programa: conjunto de instrucciones o humanos
sentencias entendibles por la computadora

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
8

CPB 4
Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

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.
9

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
Memoria Principal (RAM)

Celdas en el Mapa 12 Contenido de la variable


de Memoria Valor del dato almacenado en el
espacio de memoria

cantidad
Nombre del espacio de memoria o
indirectamente, dirección de memoria de
la variable
10

10

CPB 5
Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

Cómo almacenamos o guardamos


Operación de Asignación
un valor o dato en una variable ?

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.

cantidad = 12
Identificador o nombre contenido
de la variable que ( Debe ser
conocido )
almacena el valor Operador
asignación en C

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

11

11

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

12

12

CPB 6
Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

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

13

13

Palabra Rango de
Reservada valores Formato

int -32768 a 32767 %d


Enteras (decimal)
-2147483648 a
long int 2147483647
%ld
Numéricas

float 3.4E-38 a 3.4E+38 %f (punto flotante)


Reales (+/-)
double 1.7E-308 1.7E+308 %lf (doble precisión)

Caracteres char Código ASCII %c (un caracter)


(Alfanuméricos) 256 caracteres

14

14

CPB 7
Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

EJEMPLO: MEMORIA PRINCIPAL


x=2; x y
y=3;
2 3
x=y+1;
4 17
x=x+1;
5 25
y=2+3*5;
30
y=(2+3)*5;
x=x+y;
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
15

15

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 )
Espacios de Memoria
Asignación de valor a una variable :
edad hijos
Ejemplo 1: 32 2

edad = 32 ; sueldo sexo


hijos = 2 ; 8500.00 F
sueldo = 8500.00
sexo = 'F' ; // la constante carácter (valor) se escribe entre apóstrofos

Ejemplo 2: Declaración y asignación simultánea a b


2 -5
int a = 2 , b = -5 , c , d ; // declaración y asignación -5 2

c=a+b;
c d
d = b ; b = a ; a = d ; // intercambio de valores entre las variables a y b -3 -5
se requiere de una variable auxiliar (d)
16

16

CPB 8
Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

Es el algoritmo expresado con símbolos gráficos.

E Entrada de Datos  scanf( )

Asignación  =

Salida de Datos  printf( )


S

17

17

Condición
V F
Estructura Condicional :
if - else

Inicialización , Cond , Incremento


Estructuras de Repetición :
cuerpo

for ( )

condición

cuerpo
while ( )

18

18

CPB 9
Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

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. Condición del
Enunciado

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

19

19

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

Entrada de
E vmax , nuevos , rec Datos

total = nuevos + rec

Asignación
libres = vmax - total
Guardar un valor en
una variable

porc = rec * 100.0 / total

Salida de
S libres , porc Datos

20

20

CPB 10
Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

Prueba de escritorio del


funcionamiento del algoritmo

E vmax , nuevos , rec vmax nuevos rec


60 33 16
total = nuevos + rec

libres = vmax - total

porc = rec * 100.0 / total total libres porc


49 11 32.65
S libres , porc

21

21

Función printf( ) :

Es una función que permite escribir en pantalla texto y contenido de variables.


La sintaxis de su llamada es:
S
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” ); Cada \n produjo un
como
salto de línea
te va?
_
22

22

CPB 11
Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

Ejemplo 2: Programa
int edad;
%d formato de la variable %.2f  %f es el formato de la variable real a
float sueldo; cuyo contenido quiere informar informar en esa posición del texto.
en esa posición del texto El indicador .2 determina que se deben
edad = 30; mostrar solo dos decimales del número real

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


\n produce un salto de línea _

Pantalla

23

23

Función scanf( ) :
E
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
Este valor (26) se ingresa
desde el teclado y al
Ejemplo 1: Programa Pantalla presionar ENTER se guarda
en la variable edad
int edad; Ingresar edad: 26 La función scanf produce un
salto de línea
printf( “Ingresar la edad: “ ); Tu edad es 26 años

scanf( “%d” , & edad ); _ En Memoria

printf( “Tu edad es %d años\n”, edad ); 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.

24

24

CPB 12
Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

#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 ; Para que el resultado de la división sea real por
lo menos uno de los operandos debe ser real
// salida de resultados
printf("Cantidad de vacantes libres: %d", libres ); Salto de línea
Otra forma de hacer printf("\n");
pausa en el programa printf("Porcentaje de alumnos recursantes: %0.2f %%\n ", porc );
es utilizando la función
getch() system(“PAUSE”);
Poner doble%
incluida en la librería } Para agregar el signo
conio.h Pausa para detener
la ejecución porcentual (%) en la salida

25

25

Datos de entrada
ingresados desde
teclado y asignados a
cada variable por la
Datos de salida función scanf
(resultados) informados
en pantalla por la
función printf
system(“PAUSE”)

26

26

CPB 13

También podría gustarte