Вы находитесь на странице: 1из 58

Conjunto de pasos o acciones que se realizan de manera ordenada para llegar a la solucin de un problema.

Conjunto de sentencias/instrucciones en lenguaje nativo, las cuales expresan la lgica para la resolucin de un problema. Conclusin : Es un mtodo para resolver un problema. La resolucin de un problema exige el diseo de un algoritmo que lo resuelva.

Problema Algoritmo Programa en computadora Diseo del algoritmo .- Describe los pasos a seguir para la resolucin de un problema dado (anlisis y desarrollo del algoritmo) Programa en computadora .- El algoritmo se expresa mediante un lenguaje de programacin en un programa.

Algoritmo Cualitativo.- Son los algoritmos descritos mediante palabras. Ejm: La elaboracin de una receta de cocina El tejido a mano de una chompa. Bsqueda de un numero telefnico. El cambio de una llanta El cambio de un foco quemado. Algoritmo Cuantitativo.- Son los algoritmos que se basan en clculos numricos. Ejm: Pasos a seguir para resolver una ecuacin de segundo grado. Pasos a seguir para calcular los sueldos de los empleados de una empresa. Instrucciones para calcular los impuestos a pagar de los vecinos de un municipio.

Los algoritmos deben tener estas caractersticas: Indicar un orden a seguir en cada uno de sus pasos. Ser definido (confiable), si se ejecuta dos veces debe lograrse el mismo resultado. Ser finito, es decir terminar en un nmero finito de pasos.

En un algoritmo se definen tres partes: Entrada, Proceso y Salida.

Leer la base y altura de un rectngulo mostrar el rea en pantalla.

Entrada (Lectura de datos): Se conocen los valores de la Altura Proceso (Calculo de Area): Area = Base * Altura Salida (Muestra los resultados): Muestra valor del Area

Base y la

Un socio de una biblioteca solicita un libro para lectura, si el libro se encuentra se le presta el libro, SINO se devuelve la ficha de pedido. LEER Ficha de pedido EXAMINAR el Estante SI el libro esta en Estante ENTONCES Se acepta el pedido Se recepciona Carnet de socio. SINO Se niega el pedido Se devuelve Ficha de Pedido FIN SI

DEFINICION DE DATOS Para la computadora es un conjunto o secuencia de bits (dgitos 0 y 1 en binario). Sin embargo los lenguajes de alto nivel permiten ignorar los detalles de la representacin interna .

TIPOS DE DATOS Existen dos tipos de datos : los simples ( sin estructura ) y los compuestos (estructurados) Los tipos de datos simples (sin estructura) : a) Numricos ( Entero y Real). b) Lgicos o boolean. c) Carcter.
Entre los tipos de datos compuestos se tiene: cadena de caracteres.

Conjunto de los valores numricos. Pueden representarse en dos formas: Numrico entero ( de punto o coma fijo ) es un subconjunto de los nmeros enteros (+ o -). Ejm: 5 -56 1340 17 -14 Los mximos y mnimos suelen ser: 32768 a 32767

Numrico real (punto o coma flotante) es un subconjunto de los nmeros reales (+ o -) Ejm: 0.08 3.7456 -53.456 3.0

En algoritmos y en los programas C++, hay que declarar las variables de acuerdo a los datos que puede almacenar. as por ejemplo para datos numricos:
Algoritmo En C++ Tipo de dato int int

Tipo de dato variables


entero entero numeroPersonas numeroCajas

variables

numeroPersonas ; numeroCajas;

? El numeroPersonas y numeroCajas almacenan datos enteros.

real
real

talla
peso, talla, promPonderado

double

talla;

double peso, talla, promPonderado;

? La talla, peso y PromPonderado almacenan datos reales.

Dato que slo puede tomar dos valores: true (verdadero o 1) y false (falso o 0). Se usa para representar las alternativas a determinadas condiciones:
Ej. Opcion_continuar Condicin_de_recepcin_de_carta Estado_cancelacin_de_factura Mayoria_de_edad Datos: Verdadero Falso Verdadero Falso Falso Verdadero Falso Verdadero

Empleado_de_licencia

Verdadero

Falso

Conjunto

finito y ordenado de caracteres que la computadora reconoce. Pueden ser:

Pueden ser:
Alfabticos: 'A' 'B' 'c' '1' '2'

Datos:
'E' 'K' 'a' .... 'z' 'Z' '8' '9' ' # ' '@'

Numricos: '0'

'3' '4' '5' ... '+ ' $ ' '< ' '

Especiales: ' * ' ' - ' ' / '

En

algoritmos y en los programas C++, hay que declarar las variables de acuerdo a los datos que puede almacenar. as por ejemplo para datos de tipo carcter:
Algoritmo En C++

Tipo de dato
caracter letras

variables

Tipo de dato
char letras ;

variables

caracter estCivil, nroMes caracter operacion caracter opcion

char estCivil, nroMes; char operacion; char opcion;

CONSTANTES Espacio de la memoria para almacenar un dato que permanece sin cambio durante la ejecucin del programa. Puede ser : Constante Numrica que representa un determinado valor Constante Alfanumrica o literal que representa cualquier combinacin de caracteres (dgito, letra, smbolo especial).
Ejm: PI = 3.14159 Ejm: TasaIgv = 0.18 Ejm: Prefijo = Srta. Ejm: Prof = "Dr. "

Ejemplos

de constantes (espacios de memoria).


En algoritmos En programacin C++ const int x = 50; const double ti = 0.04;

const entero x = 500 const real ti = 0.04

const caracter Letra = 'A'

const char Letra = 'A';

VARIABLES

Espacio de la memoria para almacenar un dato que puede cambiar o no durante la ejecucin de un programa. Puede ser : numrico en el que solo se pueden almacenar valores (dgitos) o alfanumrico en el que puede almacenarse cualquier carcter (dgito, letra o smbolo especial) Se le identifica por los siguientes atributos: El tipo que describe el uso de la variable, El Nombre (o identificador ) que se le asigna y El valor de la variable que es la cantidad que tiene asociada en un determinado momento

Las variables puede ser identificadas de acuerdo a la funcin que asume en el algoritmo, como: a) Contador : Campo o variable que sirve para llevar una cuenta con incrementos constantes, generalmente de 1 en 1. Ejm: NroPerMayEdad, variable que cuenta el nmero de personas mayores de edad Requiere de las siguientes instrucciones: NroPerMayEdad = 0 // inicializar en cero NroPerMayEdad = NroPerMayEdad + 1 // NroPerMayEdad aumenta en uno

b) Acumulador : Campo o variable que sirve para llevar una suma o cuenta de diferentes valores(acumular). Ejm: SEdad variable que almacena la suma de las edades de una cantidad de personas. Requiere de las siguientes instrucciones:
1. SEdad = 0 2. SEdad = SEdad + Edad en el valor de Edad // Inicializa en cero // SEdad se incrementa

Inicializar, significa poner en blanco o en cero una variable o campo antes de su utilizacin.

c) Variable de Trabajo : Campo que almacena temporalmente el resultado de alguna operacin. No es variable de entrada ni de salida. Ejm: Si me piden ingresar el radio y altura de un cilindro y requieren calcular el volumen del cilindro. El Area de la base ABase requerida seria una variable de trabajo porque no es variable ni de entrada ni de salida.

Fig. 5. Definicin de la funcin NombreFuncin

Fig. 6. Llamada de la funcin NombreFuncin, definida anteriormente

Definicin de la funcin estndar seno en el L.P.


TipoResultado Nombre de Funcion Parametro en radianes

Real

sin ( Real x )
Tipo de Parametro

Llamada a la funcin estndar seno

senox =
Real senox

sin ( 3.1416 / 2 )
1.0
argumento

1.0

Definicin de la funcin estndar raz cuadrada en el L.P.


TipoResultado Nombre de Funcion Parametro en radianes

Real

RaizCua (Real x )
Tipo de Parametro

Llamada a la funcin estndar raz Cuadrada

raizx = RaizCua ( 2.0 )


Real raizx

1.4142

1.4142

FUNCIONES ARITMETICAS en la definicin Definicin en C++ Algoritmos (pseudocodigo) tipoRetorno NombreFuncion (t1 p1, . ,tn pn ) tipo de tipo de Nombre parmetro y de parmetro y de Funci Descripcin retorno en retorno n algoritmos en C++ entero abs int abs(int p) valor absoluto, retorna la (entero p) abs(p) double magnitud de p real abs (real fabs(double dp)) p) raiz cuadrada, retorna la raiz double sqrt sqrt(p) real sqrt (real p) cuadrada de p (double p) seno, retorna el seno de p double sin( sin(p) real sin(real p) expresado en radianes double p) coseno, retorna el seno de double cos cos(p) real cos(real p) p expresado en radianes (double p)

Es un conjunto de variables y/o constantes unidas o relacionadas por operadores relacionales.


algoritmos Operad Comple or mento < <= > >= = >= > <= < = OPERADORES RELACIONALES Significado En lenguaje C++ Operad Comple or mento < <= > >= >= > <= < != ==

Operador
menor que

Complemento
mayor o igual que

menor o igual que mayor que mayor que menor o igual que

mayor o igual que menor que igual que distinto de (diferente)

distinto de (diferente) = = !=

Ejm

en algoritmos y en lenguaje C++

En algoritmos Edad > 18 SalBruto <= SalNeto EstCivil 'S' Edad > 18

En C++

SalBruto <= SalNeto EstCivil != 'S'

Se

forman combinando constantes lgicas, variables lgicas y otras expresiones lgicas utilizando los operadores lgicos: NO, O, Y, y los operadores relacionales o de comparacin.
En algoritmos En C++ ( Edad > 18 ) && ( Talla < 1.70 ) ! ( sexo == F )

( Edad > 18 ) Y ( Talla < 1.70 ) NO ( sexo = F )

( EstCivil = C ) O (Sueldo > 2000) ( EstCivil == C ) || (Sueldo > 2000)

Los algoritmos pueden presentarse en : Diagramas de Flujo, Diagramas de Nassi Sneidermann y Pseudocdigo,

Pseudocdigo Es un lenguaje de especificacin de algoritmos. Es similar al lenguaje comn. Su traduccin a un lenguaje de programacin es sencillo. Utiliza enunciados donde cada uno de ellos representa una instruccin en un programa de computadora. Ofrece gran facilidad para representar en un lenguaje no formal las instrucciones de un algoritmo que sirve de base para el cdigo o programa fuente Utiliza palabras reservadas en ingles o en castellano como

Iniciar el algoritmo Finalizar el algoritmo

INICIO FIN

Lectura (permite ingresar los valores de LEER las variables) Mostrar (permite mostrar los valores de las MOSTRAR variables) Estructura Selectiva SI (expBooleana) { ... .... } SINO {... .... } SELECCIONA segun (selector ) { caso v1 : ....... } Estructura Repetitiva PARA ( ... ; Hasta ; ... con ) { ......... } MIENTRAS (expBooleana ) { .... }

DO { .............. } MIENTRAS ( expBooleana )

INSTRUCCIONES O SENTENCIAS a) Instruccin de Asignacin Operacin en la cual el computador desarrolla o evala una expresin matemtica y almacena el resultado final en una determinada variable. En la forma ms simple de asignacin el computador mueve una constante o el contenido de un campo a otra variable. Sintaxis: Nombre_de_la_variable = expresin, variable o constante

Ejemplo

de Asignacin de Caracteres o cadena de caracteres

En algoritmos
caracter *vCad, car car = 'S'

En C++
char * vCad, car ; car = 'S';

vCad = "25 de diciembre vCad = "25 de diciembre de de 1998" 1998";

Reglas para la construccin de un enunciado de asignacin: Toda variable del lado derecho debe estar definida Despus de ejecutarse un enunciado: Solo la variable de la izquierda puede cambiar de valor cuando con anterioridad tiene un valor asignado Las variables del lado derecho conservan su valor. Si la variable de la parte izquierda se encuentra tambin en la derecha , esta variable cambia de valor por aparecer en la izquierda

b) Instruccin de Entrada y salida de informacin


En algoritmos
real v entero v2 caracter sexo LEER v LEER v2 MOSTRAR v MOSTRAR v, v2 LEER sexo caracter nombre[20] LEER nombre MOSTRAR nombre

Encabezado .- Empezar con la palabra ALGORITMO seguida por una descripcin adecuada de acuerdo al problema a resolver Ejm: ALGORITMO Calcular Area del Circulo Inicio del Algoritmo .- Indicar el inicio del Algoritmo Ejm INICIO Declaracin de Constantes .- Definir los valores que no cambian en el transcurso del algoritmo Ejm const real Pi = 3.1416

Declaracin de las Variables a usar .Definir las variables (estructuras de datos ) que sean necesarios para resolver el problema, identificndolas con un nombre y determinando sus tipos. Ejm Real Radio , Area Leer Calcular o Imprimir .- Que permite leer, calcular o imprimir tantas veces se quiera.

a) Leer Datos.- Permite introducir los valores de las variables de entrada disponibles como materia prima, para evaluar las variables de salida Ejm: LEER Radio b) Calcular .- Permite procesar los valores de entrada para producir la salida adecuada. Ejm : Area = Pi * Radio * Radio o Area = Pi * pow ( Radio,2 )

c) Mostrar Resultados (Salida de Datos) .Permite dar salida a la informacin requerida.


Ejm: MOSTRAR Area El algoritmo completo es el siguiente:

Ejm : para el problema del clculo del rea de un rectngulo visto anteriormente, en pseudocdigo sera as: INICIO // Entrada (Lectura) de datos LEER Base , Altura // Proceso: Calculo de Area Area = Base * Altura // Salida de resultados MOSTRAR Area FIN

Ejm

: Hacer un algoritmo que permita calcular el jornal basico de un obrero, si para ello se requiere ingresar por teclado la tarifa horaria y el numero de horas trabajadas. La formula del jornal es : Jornal = TarHora x NroHoras.

ALGORITMO CalJornal INICIO // Declaracin de las variables real TarHora, Jornal entero NroHoras // Lectura de los Datos de Entrada LEER TarHora LEER NroHoras // Calculo del Jornal Jornal = TarHora * NroHoras. // Muestra el Jornal MOSTRAR Jornal FIN

Resuelva los siguientes algoritmos usando pseudocdigo, para: 1. Obtener la edad de una persona en meses, si se ingresa su edad en aos y meses. Ejm: Ingresado 3 aos 4 meses debe mostrar ? meses.

ALGORITMO EDAD INICIO // Declaracin de las variables entero : M , A , AM // M almacena cantidad de meses, A almacena cantidad de aos, AM almacena cantidad total de meses, Factor : 1 ao = 12 meses // Muestra en pantalla e Ingresa Datos MOSTRAR Ingrese Aos : LEER A MOSTRAR Ingrese Meses : LEER M // Proceso : consideramos que 1 ao tiene 12 meses AM = A * 12 + M // Muestra Resultados en pantalla MOSTRAR "Edad en meses = ", AM FIN

2. Colocar a un apellido el prefijo Profesor Ejm: ingresado Gmez muestre Profesor Gmez

ALGORITMO APELLIDO INICIO //Declaracin de las variables caracter Apell[30] const caracter prefijo [12] = "Profesor " // Ingreso de datos: Apellido MOSTRAR Ingrese el apellido : LEER Apell // Salida en pantalla MOSTRAR prefijo, Apell FIN

3. Escriba un algoritmo que permita convertir un valor ingresado en pies a metros. Si 1pie=30.48 cm.

ALGORITMO METROS INICIO // Declaracin de las variables real : Vp , Vm, Vc // Muestra en pantalla e Ingresa Datos Vp Valor en Pies almacena un valor en pies, Vm Valor en metros almacena un valor en metros, Vc Valor en centimetros almacena un valor en centimetros, Factor : 1 pie = 30.48 cm 1 m = 100 cm MOSTRAR Ingrese valor en pies : LEER Vp // Valor en pies // Proceso : Calcula Vm Vc = Vp * 30.48 // Valor en cm Vm = Vc /100 // Valor en m // Salida en pantalla MOSTRAR Vm FIN

4. Ingresado un ngulo en grados sexagesimales, lo convierta a radianes. 180 grados sexagesimales = 3.1416 radianes.

ALGORITMO ANGULO INICIO // Declaracin de las variables real AngSex, AngRad const real PI = 3.1416 // Muestra en pantalla e Ingresa Datos AngSex almacena angulo en grados sexagesimales AngRad almacena angulo en radianes. AngRad = AngSex * 3.1416/180 MOSTRAR Angulo en Sexagesimales : LEER AngSex // Proceso : Calcula AngRad AngRad = ( AngSex * PI ) / 180 // Muestra Resultados en pantalla MOSTRAR AngRad FIN

5. Calcular y mostrar el rea de un tringulo si se ingresa por teclado la base y la altura.

ALGORITMO TRIANGULO INICIO // Declaracin de las variables real B, H // Variables de entrada real A // Variables de salida // Entrada de Datos LEER B LEER H Proceso : Calcula Area A A = (B*H)/2 // Salida de resultados MOSTRAR A FIN

6. Calcular el rea y permetro de un tringulo, conocidos sus lados.

ALGORITMO AREAPERIMETROTRIANGULO INICIO // Declaracin de las variables real : A, B, C, P, sp, Area // Ingreso de Datos LEER A, B, C // A , B y C son los lados del triangulo P Perimetro del Triangulo (suma de sus lados) sp SemiPerimetro del Triangulo = Perimetro/2 Area = // Proceso: Calculo de P Perimetro y SP SemiPerimetro P = A+B+C sp = P/2 Area = sqrt ( sp * (sp A) * (sp-B) * (sp-C)) // Salida de Resultados MOSTRAR P, Area FIN

7) Calcule el inters (int) generado por un capital depositado (capdep) durante cierta cantidad de perodos (cp) a una tasa de inters determinada (tasa) expresada en porcentaje. Use la frmula: Monto = (capdep)*(1+tasa/100)cp Int = Monto capdep 8) Escriba un algoritmo que lea la velocidad en km/h y el nmero de horas transcurridas por un mvil, para determinar la distancia recorrida.

9) Determine el promedio de 3 nmeros reales. 10) Haga un algoritmo que permita mostrar el nombre y el salario semanal del empleado de una compaa. El algoritmo debe permitir ingresar el nombre, el nmero de horas trabajadas y la tarifa por hora. 11) Hacer un algoritmo que permita ingresar dos nmeros reales y calcule las 4 operaciones bsicas (suma, resta, multiplicacin, divisin). Ademas calcular la potencia. El algoritmo debe mostrar los nmeros y los resultados.