Guía de Algoritmo y Programación en C

6
Guía de Algoritmos y Programación Prof. Pablo Daniel Chiesa Algoritmos y Programación en C Algoritmo es un método para resolver un problema mediante una serie de pasos definidos, precisos y finitos. Cuando decimos precisos nos referimos a que la forma de resolución del problema debe respetar un orden estricto, es muy importante realizar los pasos en el orden indicado. Definidos hace alución a que si se sigue dos veces el mismo algoritmo (sin importar quién lo haga) se debe obtener el mismo resultado. Por último, finitos, indica que todo algoritmo debe tener un numero finitos de pasos, debe iniciar en algún lugar y debe llegar a su fin luego de sierta cantidad de instrucciones. Se pueden expresar algoritmo de diferentes formas: Con formulas matemáticas. Con diagrama de flujo (que es el que usaremos nosotros) Con pseudo código (que es similar a el código de programación, pero de una forma más coloquial). El diagrama de un Algoritmo es independiente de el tipo de código que se utilizará luego para escribir el programa. Una vez diseñado y comprobado el algoritmo la escritura del código se hace mucho más sencilla. A continuación se presenta una grilla con los diferentes símbolos que se utilizan para realizar algoritmos y su traducción en el lenguaje de programación “C”: Símbolo (diagrama de flujo) Nombre Explicación Equivalente en código Terminador Marca el inicio o el fin del diagrama de flujo. void main () { } Declaración de Variables Indica que tipo de cajas se utilizarán para guardar la información del programa. int nombre_de_la_variable double nombre_de_la_variable char nombre_de_la_variable Procesos Para hacer algún proceso de cálculo nombre_de_la_variable = 4+8 scanf(“%d,&nombre_de_la_variable) Entrada/Salida de Datos Para mostrar en pantalla. printf(“lo que se quiera mostrar”) Si mostramos el contenido de una variable es necesario hacer una nomenclatura especial: printf(“%d”,nombre_de_la_variable) Condicional o Bifurcación Se indica un punto donde debe tomarse una decisión if (variable>3) { } Documento o impresión Se usa para hacer referencia a la utilización de un docmento específico o a la impresión de un archivo

Transcript of Guía de Algoritmo y Programación en C

Guía de Algoritmos y ProgramaciónProf. Pablo Daniel Chiesa

Algoritmos y Programación en CAlgoritmo es un método para resolver un problema mediante una serie de pasos definidos, precisos y finitos. Cuando decimos precisos nos referimos a que la forma de resolución del problema debe respetar un orden estricto, es muy importante realizar los pasos en el orden indicado. Definidos hace alución a que si se sigue dos veces el mismo algoritmo (sin importar quién lo haga) se debe obtener el mismo resultado. Por último, finitos, indica que todo algoritmo debe tener un numero finitos de pasos, debeiniciar en algún lugar y debe llegar a su fin luego de sierta cantidad de instrucciones.Se pueden expresar algoritmo de diferentes formas:

• Con formulas matemáticas.• Con diagrama de flujo (que es el que usaremos nosotros)• Con pseudo código (que es similar a el código de programación, pero de una forma más

coloquial).El diagrama de un Algoritmo es independiente de el tipo de código que se utilizará luego para escribir el programa. Una vez diseñado y comprobado el algoritmo la escritura del código se hace mucho más sencilla.A continuación se presenta una grilla con los diferentes símbolos que se utilizan para realizar algoritmos y su traducción en el lenguaje de programación “C”:

Símbolo (diagrama de

flujo)

Nombre Explicación Equivalente en código

Terminador Marca el inicio o el findel diagrama de flujo.

void main (){}

Declaración de Variables

Indica que tipo de cajas se utilizarán paraguardar la informacióndel programa.

int nombre_de_la_variabledouble nombre_de_la_variablechar nombre_de_la_variable

Procesos Para hacer algún proceso de cálculo

nombre_de_la_variable = 4+8scanf(“%d,&nombre_de_la_variable)

Entrada/Salida deDatos

Para mostrar en pantalla.

printf(“lo que se quiera mostrar”)

Si mostramos el contenido de una variable es necesario hacer una nomenclatura especial:printf(“%d”,nombre_de_la_variable)

Condicional o Bifurcación

Se indica un punto donde debe tomarse una decisión

if (variable>3){

}

Documento o impresión

Se usa para hacer referencia a la utilización de un docmento específico o a la impresión de un archivo

Guía de Algoritmos y ProgramaciónProf. Pablo Daniel Chiesa

Pasos para armar un Algoritmo o un Programa:

1) Objetivo del programa e inicio del mismo

Para poder realizar un algoritmo o un código de programación, es indispensable saber cual es el objetivo final de nuestro programa, para poder apuntar hacia el resultado de la forma más directa.

Por ejemplo si lo que queremos es determinar cuál será el promedio de una persona en alguna materia, sabemos que nuestro objetivo final es llegar al calculo de un promedio:

(nota1+nota2+...+nota#) / cantidad_de_notas

Luego una vez que sabemos el objetivo que estamos buscando alcanzar, es necesario saber qué elementos voy a necesitar para trabajar (estos elementos serán nuestras variables). En el ejemplo delpromedio es necesario tener guardado en algún lugar las notas para poder hacer el cálculo luego.

Para poder empezar a escribir el programa o el algoritmo es necesario iniciar el mismo, para eso es necesario hacer lo siguiente:

#include<stdio.h>void main(){

}

(código de programa) (diagrama de flujo)

2) Definir las Variables

En las computadoras para poder guardar información y luego poder usarlas es necesario decirle específicamente lo que quiero guardar y cómo lo voy a llamar a eso que quiero guardar. Vamos a llamar Variables a las cajas o lugares donde guardaremos estos valores que queremos usar luego para hacer cálculos o lo que sea que queramos hacer.Entonces para poder guardar información necesitamos tener armadas estas cajas o variables en donde depositar la información. Vamos a tener distintos tipos de Variables, nosotros vamos a usar solo algunas de estas cajas.Usaremos:

• Variables Numéricas:◦ Enteras (integer / int) -números sin coma-◦ Reales (double) -números con coma-

• Variables alfanuméricas:◦ Texto (character / char) -cualquier carácter, letras, números o especiales- (no sirve para

hacer cálculos)Luego, cuando queremos empezar a hacer un algoritmo o un código para un programa lo primero que tenemos que hacer es definir qué información vamos a necesitar guardar, para poder armar las variables (cajas) para poder almacenar la misma.

I

Guía de Algoritmos y ProgramaciónProf. Pablo Daniel Chiesa

Para armar una variable debemos escribir primero el tipo de variable que vamos a tener (char o int odouble) y luego el nombre que va a tener la caja (que es el nombre que vamos a usar nosotros cuando queramos usar lo que esté guardado en la misma).Ej.: para el ejemplo de las notas es necesario guardar las notas que se saca el alumno en algun lugar y luego necesitaremos guardar el promedio en algún otro lugar. Entonces quedará de la siguiente manera (si las notas son números enteros):

int nota1, nota2, nota3;double promedio;

(código de programa) (diagrama de flujo)

Nótese que todas las cajas que son del mismo tipo las ubicamos en el mismo renglón separadas por una coma, y para pasar al siguiente renglón usamos el punto y coma. También se podría haber escrito cada caja en un renglón diferente, de la siguiente manera:

int nota1;int nota1;int nota1;double promedio;

(código de programa) (diagrama de flujo)

3) Carga de datos:

Una vez que tenemos armadas las variables es necesario guardar los datos que usaremos en el programa en las mismas. En el ejemplo del promedio dentro de las variables Nota1, Nota2 y Nota3 es necesario guardar el número que corresponde a cada nota. Para eso se puede hacer dos formas diferentes, asignarle a cada variable un valor determinado o pedirle al usuario que ingrese el númeroque corresponda para cada uno.

La forma de ingresar las notas como valores fijos en el programa sería la siguiente:

nota1=10;nota2=8;nota3=9;

(código de programa) (diagrama de flujo)

La otra forma de ingresar los datos en las variables es pidiendo al usuario que ingrese las notas:

printf(“Ingrese la primer nota”);scanf(“%d”,&nota1);printf(“Ingrese la segunda nota”);scanf(“%d”,&nota2);printf(“Ingrese la tercera nota”);scanf(“%d”,&nota3);

(código de programa) (diagrama de flujo)

int nota1, nota2, nota3;double promedio;

int nota1;int nota1;int nota1;double promedio;

nota1←10;nota2←8;nota3←9;

“Ingrese la primer nota”

nota1←nota ingresada

“Ingrese la segunda nota”

nota2←nota ingresada

“Ingrese la segunda nota”

nota2←nota ingresada

Guía de Algoritmos y ProgramaciónProf. Pablo Daniel Chiesa

Tanto para el “scanf” (para capturar lo que se ingresa en pantalla) como para el printf (para mostrar en pantalla un mensaje o valor), usar o guardar valores de las variables. Para esto es necesario indicarle en el código que queremos usar lo que está dentro de la caja. Para eso se usa el indicador “%” y en el scanf el “&” también.Variable Printf Scanf

Int printf(“%d”, nmbre); scanf(“%d”,&nombre);

Double printf(“%f”,nombre); scanf(“%f”,&nombre);

Char printf(“%c”,nombre); scanf(“%c”,&nombre);

3) Procedimientos:

Una vez que tenemos los datos cargados en las variables podemos realizar cálculos o diferentes acciones con los mismos. En el ejemplo de las notas en este punto tendríamos que ralizar el promedio de las mismas.

promedio= (nota1+nota2+nota3) / 3;

(código de programa) (diagrama de flujo)

Hay que tener en cuenta que dentro de los procedimientos podemos realizar cualquier cálculo matemático con las variables y con cualquier número que ingresemos a mano en el cálculo.

4) Condicionales

Muchas veces dentro de los programas es necesario determinar dos resultados posibles dependiendode una condición. En el ejemplo del promedio, podemos querer determinar si la persona está aprobada o desaprobada, para lo cual tendremos que decir que: “Si el promedio es mayor o igual que 6 la persona está aprobada, y en caso contrario (si la nota no es mayor o igual que 6) está desaprobada". A estas situaciones se las denomina bifurcaciones o Condicionales.

Esta afirmación se traduciría de la siguiente manera en el código:

if (promedio>=6)printf(“Aprobado”);elseprintf(“Desaprobado”);

(código de programa) (diagrama de flujo)

promedio ← (nota1+nota2+nota3)/3

Promedio>=6 Aprobado

Desaprobado

No

Guía de Algoritmos y ProgramaciónProf. Pablo Daniel Chiesa

En los condicionales tenemos que tener en cuenta siempre que la condición que en el diagrama de flujo va dentro del rombo y en el código va dentro del paréntesis debe tener tres partes:

Variable Conector Control

Nombre de la variable a evaluar

> (mayor)>= (mayor o igual)< (menor)<= (menor o igual)== (igual)!= (diferente)

'texto' (para compara con texto)Numero (para compara con número)Nombre de variable (para comparar con otra variable)

Hay que tener en cuenta que en los condicionales no siempre el resultado de la condición es mostraralgo (como en este caso, mostrar aprobado o desaprobado) hay casos en que luego de la condición se hacen cálculos y procedimientos en las ramas que se generan de la condición.

Ejemplo: Una compañía telefónica cobra las llamadas de la siguiente manera: Si el tiempo de duración de la llamada es inferior a 3 mín. el valor de la misma es $1 en cambio si la duración de la llamada supera los 3 mín. el costo se calcula como $0,50 por cada minuto de la llamada.El algoritmo completo quedaría de la siguiente manera:

El código de programación de este problema sería el siguiente:

#include<stdio.h>void main(){

int min;double valor;printf(“Ingrese los minutos”);scanf(“%d”,&min);if (min<3)valor=1elsevalor = min * 0.5;printf (“El valor de la llamada es: %f”,valor);

}

Como se puede ver en el desarrollo de este diagrama en la respuesta Sí del condicional se guarda enla caja Valor el valor de la llamada, y en la parte de la respuesta No se realiza el cálculo del valor de

Guía de Algoritmos y ProgramaciónProf. Pablo Daniel Chiesa

la llamada y se lo guarda en la misma caja. Luego de eso se muestra el contenido de la caja Valor que dependiendo el camino que siguió el programa lo que tendrá guardado dentro.

Ejercicios:

1) Hacer el algoritmo y el código de un programa que permita calcular la superficie de un lugar rectangular, y la muestre en pantalla. (la superficie de un rectángulo se calcula como: largo * ancho)

2) Usando el ejercicio anterior realizar las modificaciones necesarias para que el programa nos muestre cuanto costará ponerle baldosas a este lugar rectangular. Suponiendo que cada baldosa cubre 1m2. (para poder realizarlo habrá que multiplicar la superficie del lugar por el valor de las baldosas)

3) Realizar el algoritmo y el código de un programa que permita calcular el promedio de tres notas ingresadas por el usuario y que indique si el alumno está aprobado o desaprobado, sabiendo que estarán aprobados todos los alumnos con notas mayores o iguales que 6.

4) Realizar el algoritmo y el código de un programa que le pida al usuario ingresar dos números diferentes y que se fije cuál de los dos es el mayo y lo muestre en pantalla.

5) Realizar el algoritmo y el código de un programa que permita calcular el índice de masa corporal (IMC), sabiendo que el mismo se obtiene de la siguiente cuenta:

Luego indicar si la persona tiene sobrepeso sabiendo que un IMC superior a 25 indica sobrepeso.