Anda di halaman 1dari 24

ING102 – Introducción a la

Computación

Unidad
Algoritmos

Algoritmos 1

2011  Erwin Fischer 2


Contenidos

3.2.1 Hola Mundo


3.2.2 porcentajes de hombres y mujeres
3.2.3 Concepto de variable
3.2.4 Calcular velocidad de un móvil
3.2.5 área de un cuadrado
3.2.6 Problema 1 - Jalisco
3.2.7 Problema 2 - Calcular área y perímetro de
rectángulo
3.2.8 Problema 3 - Suma de fracciones: a/b +
c/d

2011  Erwin Fischer 3


Problema

• Escribir un programa para que el


computador presente por pantalla
la frase “Hola Mundo”

Solución: en Pseudo código (PSeInt)


Proceso HolaMundo
Escribir “Hola Mundo";
FinProceso

2011  Erwin Fischer 4


Solución en java

public class Main {


public static void main(String[] args) {
System.out.println ("Hola Mundo");
}
}

2011  Erwin Fischer 5


Solución en delphi

program Holamundo;

{$APPTYPE CONSOLE}

uses
SysUtils;

begin
Writeln('Hola Mundo');
readln;
end.

2011  Erwin Fischer 6


Escribir un programa para que el
computador calcule los porcentajes de
hombres y mujeres

de acuerdo al siguiente diálogo con una persona


(usuario):

nº de hombres? 649 persona

nº de mujeres? 125 persona

% de hombres = 83.8

% de mujeres = 16.2

2011  Erwin Fischer 7


Algoritmo. Etapas (pasos, instrucciones) que
debe realizar (ejecutar) el computador para
resolver el problema

Ejemplo:

1. escribir (mostrar) en la pantalla la frase “nº de hombres?”

2. leer (obtener) el n° ingresado por la persona usando el teclado

3. escribir (mostrar) en la pantalla “nº de mujeres?”

4. leer el n° ingresado por la persona

5. calcular el %(p) de hombres c/r a suma de hombres(h) y mujeres(m)


como h x 100
h+m
6. escribir una línea con la frase “% de hombres = ” y el nº p

7. escribir una línea con “% de mujeres = ” y el nº 100-p

2011  Erwin Fischer 8


Programa: Algoritmo expresado
en un lenguaje de programación

•En PSeInt

Proceso CalculaPorcentajes
Escribir "N° de Hombres?";
Leer h;
Escribir "N° de Mujeres?";
Leer m;
p<-h/(h+m)*100;
Escribir "% de hombres = ", p;
Escribir "% de mujeres = ", 100 - p;
FinProceso

2011  Erwin Fischer 9


PSeInt en detalle

Proceso CalculaPorcentajes Nombre


del
acción 1;
programa
acción 2;

acción n;
FinProceso

Escribir "N° de Hombres?";

Sintaxis
Escribir lista_de_expresiones;
Semántica
Escribe el (parámetro) lista_de_expresiones, en
la pantalla del computador

2011  Erwin Fischer 10


Explicación en detalle

Leer h; // lee por pantalla la cantidad de


hombres
• lee un número desde el teclado y lo
guarda en la variable h
• Nota.
//frase
– es un comentario que contiene
observaciones de utilidad para el
programador, pero que es ignorado por el
computador al ejecutar las instrucciones del
programa

2011  Erwin Fischer 11


¿variable?
• representación simbólica de un
valor (número)
• representa una ubicación (celda)
en la memoria del computador
• capacidad: un valor/número
• puede variar (cambiar) su valor

2011  Erwin Fischer 12


Leer h

• Semántica:
• 1º método (función) Leer
1.espera que el usuario ingrese un
número (dígitos y enter)
2.lee (obtiene) el número
3.entrega el número como resultado

• 2º número se guarda en (asigna a) la


variable h

2011  Erwin Fischer 13


p<-h/(h+m)*100;
calcula h/(h+m) * 100 y guarda el resultado en la
variable p

Instrucción de asignación

sintaxis:

variable<-expresión;

semántica
1º evaluar expresión (calcular resultado)
2º asignar(guardar) resultado a(en) la
variable

2011  Erwin Fischer 14


Expresión

Sintaxis
se escribe en una línea (hacia el lado) y no en varios niveles
componentes: variables, constantes, operadores, funciones

Semántica
• se calcula el resultado de la expresión de acuerdo a la
siguiente prioridad de los operadores:

1º operadores unarios: +, -
2º operadores “multiplicativos”: *, /
3º operadores “aditivos”: +, -

Ej: -a+b*c es (-a)+(b*c), similar a


álgebra
2011  Erwin Fischer 15
Expresión: semántica

a igual prioridad, se evalúa de izquierda a derecha.


Ej: a*b/c es (a*b)/c

paréntesis modifican o confirman orden de evaluación.


ejs: (a+b)*c modifica, a+(b*c) confirma

¿tipo del resultado? (en java)


tipo común. Ej: 1 / 2 es 0 (entero), 1.0 / 2.0 es 0.5 (real)
real si operandos son de tipos distintos. Ej: 1.0/2 es 0.5
¿resultado de h/(h+m)*100.0?

2011  Erwin Fischer 16


Escribir "% de mujeres = ", 100 - p;

• Escribe el texto % de mujeres = , el valor de la


expresión 100 - p y “salta” a la siguiente línea
Sintaxis
Escribir lista_de_expresiones;

Semántica
Escribe el (parámetro) lista_de_expresiones, en la pantalla del
computador

1º evaluar expresión (ejs: p, 100-p)


2º escribir resultado
3º posicionar el cursor al comienzo de la siguiente línea en la pantalla

Notas.
Expresión puede ser una frase. Ej: escribe “chao”;
escribe también admite expresiones. Ej: escribe 100-p;

2011  Erwin Fischer 17


El mismo programa en Java

import java.util.Scanner;
public class calculaporcentajes {

public static void main(String[] args){


int h, m;
double p;
Scanner s = new Scanner(System.in);
System.out.println ("N° de Hombres?");
h=s.nextInt();
System.out.println ("N° de Mujeres?");
m=s.nextInt();
p = 100.0 * h /(h+m);
System.out.println ("% de Hombres = " + p);
System.out.println("% de mujeres = " + (100 - p));
}
}

2011  Erwin Fischer 18


Lenguaje Java: características generales

• inspirado en idioma inglés


– palabras int, print, read,...
• uso de notación matemática
– expresiones: 100.0*h/(h+m), p-100
– funciones: print(...), readInt()
• sintaxis (gramática, escritura) reglamentada
– instrucciones terminan con ;
– palabras con significados especiales (int, double, print)
– uso de minúsculas (salvo casos especiales)
• semántica (interpretación) precisa (sin ambigüedades)
– instrucciones con significado/efecto bien definido

2011  Erwin Fischer 19


Calcular velocidad de un móvil

Ejercicio
• Escribir las instrucciones que establezcan el
diálogo indicado en el siguiente ejemplo:

distancia(metros)? 100.0

tiempo(segundos)? 9.78

velocidad=36.81 km/hora

2011  Erwin Fischer 20


Calcular velocidad de un móvil

escribir “Calcular velocidad de un móvil”;


escribir “distancia(metros)?”;
leer d;
escribir “tiempo(segundos)?”;
leer t

escribir “velocidad= ”;
escribir (d/1000)/(t/3600);// 3.6*d/t
escribir “ km/hora”;

es casi equivalente a

escribir “velocidad= ”,(d/1000)/(t/3600),“ km/hora”;

oa

escribir “velocidad= ”, 3.6*d/t, “ km/hora”;

Solo que en la primera opción salta una línea por cada escribir

2011  Erwin Fischer 21


Programa completo en PSeInt

Proceso CalculaVelocidad
… //instrucciones
FinProceso

Notas
todo programa en PSeInt, debe estar contenido en un proceso con
Nombre y grabarse en archivo Nombre.psc

Las características de este pseudolenguaje fueron propuestas en 2001 por


Horacio Loyarte, de la carrera de Ingeniería Informática de la FICH-UNL.

Las premisas son:


Sintaxis sencilla
Manejo de las estructuras básicas de control
Solo 3 tipos de datos básicos: numérico, caracter /cadenas de caracteres y
lógico (verdadero-falso).
Estructuras de datos: arreglos

2011  Erwin Fischer 22


2011  Erwin Fischer 23
área de un cuadrado

• Desarrolle un programa que


calcule el área de un cuadrado, de
acuerdo al dialogo indicado en el
ejemplo:
– Calcular el área de un cuadrado
– Lado del cuadrado (en centímetros) :
? 15
– El área del cuadrado es : 225

2011  Erwin Fischer 24


Ejercicios Propuestos 1

Problema Nº 1: (tiempo estimado: 5 minutos)


Ingresa un nº: 123
124 te gané
Problema Nº 2: (tiempo estimado: 10 minutos)
Calcular área y perímetro de rectángulo
Largo? …
Ancho? …
Area=nº Perímetro=nº
Problema Nº 3: (tiempo estimado: 20 minutos)
Suma de fracciones: a/b + c/d
a ? 1
b ? 2
c ? 3
d ? 4
suma = 10/8 = 1 2/8 = 1.25

2011  Erwin Fischer 25

Anda mungkin juga menyukai