Vous êtes sur la page 1sur 31

Introduccin a la Computacin

UNIVERSIDAD RAFAEL BELLOSO CHACN


FACULTAD DE INGENIERIA

INTRODUCCIN A LA COMPUTACION
UNIDAD II: DATOS, ALGORITMOS Y PSEUDOCODIGOS

http://www.urbe.edu/info-consultas/web-profesor/12697883/

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

ALGORITMO

Un algoritmo es un conjunto finito de instrucciones o pasos que sirven para ejecutar una tarea y/o
resolver un problema. De un modo ms formal, un algoritmo es una secuencia finita de operaciones
realizables, no ambiguas, cuya ejecucin da una solucin de un problema en un tiempo finito.
El trmino algoritmo no est exclusivamente relacionado con la matemtica, ciencias de la
computacin o informtica.
En realidad, en la vida cotidiana empleamos algoritmos en multitud de ocasiones para resolver
diversos problemas. Algunos ejemplos son el uso de una lavadora (se siguen las instrucciones),
pero no la preparacin de una comida (porque no estn perfectamente definidos los pasos).
Tambin existen ejemplos de ndole matemtica, como el algoritmo de la divisin para calcular el
cociente de dos nmeros, el algoritmo de Euclides para calcular el mximo comn divisor de dos
enteros positivos, o incluso el mtodo de Gauss para resolver Sistema lineal de ecuaciones.

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

CONCEPTO

La definicin de algoritmo an no cuenta con la formalidad cientfica que


podra ser ideal para la matemtica y las ciencias de la computacin
(donde los algoritmos son esenciales pero a falta de formalidad no pueden
incluirse fcilmente en las demostraciones formales de estas ciencias). Sin
embargo, si existe un concepto intuitivo de algoritmo.
Un algoritmo es un sistema por el cual se llega a una solucin, teniendo en
cuenta que debe ser definido, finito y preciso. Por preciso entendemos que
cada paso a seguir tiene un orden; finito implica que tiene un determinado
nmero de pasos, o sea, que tiene un fin; y definido, que si se sigue el
mismo proceso ms de una vez llegaremos al mismo resultado.

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin
OTRAS DEFINICIONES DE
ALGORITMO

Secuencia de pasos computacionales que transforman una entrada en una salida (efecto
caja negra) Herramienta computacional para resolver un determinado problema, en el cual,
debe estar bien especificada la relacin entre la entrada y la salida. El algoritmo materializa
(efecta) dicha relacin. Un algoritmo es un resolvedor de un problema determinado.

PARA SOLUCIONAR COMPUTACIONALMENTE UN


PROBLEMA DEBEMOS:

1. Seleccionar un modelo matemtico computacional adecuado para el problema (representacin


del
modelo)
2. Concebir con respecto a dicho modelo un algoritmo que d solucin al algoritmo (diseo del
algoritmo)
3. Programar el algoritmo en algn lenguaje de programacin y ejecutar el programa en una
computadora (programacin del algoritmo)

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

ESTRUCTURA BSICA:
inicio
datos de entrada (operaciones
bsicas)
procesamiento de los datos
datos de salida
fin
HISTORIA
La palabra algoritmo proviene del nombre del matemtico llamado Muhammad ibn Musa al-Jwarizmi que vivi
entre los siglos VIII y IX. Su trabajo consisti en preservar y difundir el conocimiento de la antigua Grecia y de la
India. Sus libros eran de fcil comprensin, de ah que su principal logro no fuera el de crear
nuevos teoremas o corrientes de pensamiento, sino el de simplificar la matemtica a punto tal que pudieran ser
comprendidas y aplicadas por un mayor nmero de personas. Cabe destacar cmo seal las virtudes del
sistema decimal indio (en contra de los sistemas tradicionales rabes) y cmo explic que, mediante una
especificacin clara y concisa de cmo calcular sistemticamente, se podran definir algoritmos que fueran
usados en dispositivos mecnicos en vez de las manos (por ejemplo, bacos).
Tambin estudi la manera de reducir las operaciones que formaban el clculo. Es por esto que aun no siendo el
creador del primer algoritmo, el concepto lleva aunque no su nombre, s su pseudnimo.
As, de la palabra algorismo, que originalmente haca referencia a las reglas de uso de la aritmtica utilizando
dgitos rabes, se evolucion a la palabra latina, derivacin de al-Khwarizmi, algobarismus, que ms tarde
mutara a algoritmo en el siglo XVIII. La palabra ha cambiado de forma que en su definicin se incluye a
todos los procedimientos finitos para resolver problemas.
Ya en el siglo XIX, se produjo el primer algoritmo escrito para un computador. La autora fue Ada Byron, en
cuyos escritos se detallaban la mquina analtica en 1842.
Ing. Luis G. Molero M.Sc.
M.Sc.

Introduccin a la Computacin

DATOS
Datos son los hechos que describen sucesos y entidades."Datos" es una palabra en plural que
se refiere a ms de un hecho. A un hecho simple se le denomina "data-tem" o elemento de
dato.
TIPOS DE DATOS
Podemos definir un tipo de dato a partir de los valores permitidos y las operaciones que se
puedan llevar a cabo sobre estos valores.

Tipos simples
Los tipos simples, que incluyen tipos ordinales y tipos reales de datos, son tipos de datos
que definen conjuntos ordenados de valores.
Tipo Ordinal
Un tipo ordinal define un conjunto ordenado de valores en los cuales cada valor,
excepto el primero, tienen un nico predecesor y cada valor, excepto el ltimo,
tienen un nico sucesor.

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

TIPOS DE DATOS
Tipo Ordinal
Tipos predefinidos
Tipo de dato entero
Es un tipo de dato que puede representar un subconjunto finito de los nmeros enteros. El
nmero mayor que puede representar depende del tamao del espacio usado por el dato y la
posibilidad (o no) de representar nmeros negativos
EJEMPLO
Bytes = 4x8 = 32 bits
Con 32 bits se pueden representar 232=4294967296 valores:
Slo positivos: del 0 al 4294967295
Positivos y negativos: del -2147483648 al 2147483647
Tipo de dato carcter
Cualquier signo tipogrfico. Puede ser una letra, un nmero, un signo de puntuacin o un
espacio. Este trmino se usa mucho en computacin.

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

TIPOS DE DATOS
Tipo Ordinal
Tipos predefinidos
Tipo de dato lgico

El tipo de dato lgico o booleano es en computacin aquel que puede representar valores
de lgica binaria, esto es, valores que representen falso o verdadero.
Tipos definidos por el usuario
Tipo de dato enumerado

Un tipo enumerado define un conjunto ordenado de valores con el simple hecho de listar
los identificadores que denotan tales valores
EJEMPLO

Ejemplo: ( B21, ABC, B33 )


Pero ni ( 12531, 14405 ) ni ( A-, B+, B- ) son definiciones legales de tipo.
Ing. Luis G. Molero M.Sc.
M.Sc.

Introduccin a la Computacin

TIPOS DE DATOS
Tipo Ordinal
Tipos definidos por el usuario
Tipo de dato subrango
Un tipo subrango se define de un tipo ordinal, especificando dos constantes de ese tipo,
que actan como lmite inferior y superior del conjunto de datos de ese tipo.

EJEMPLO
0..9 este tipo subrango consta de los
elementos
0,1,2,3,4,5,6,7,8,9

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

TIPOS DE DATOS
Tipo no Ordinal
Tipo de dato real
El tipo de dato real define un conjunto de nmeros que pueden ser representados con la notacin
de coma flotante.
EJEMPLO
a = 123,123456789 / 100
Truncando: a = 1,2312345678
Redondeando: a =
1,2312345679
Tipo de dato puntero
Un puntero (o apuntador) es una variable manipulable que referencia una regin de memoria; en
otras palabras es una variable cuyo valor es una direccin de memoria

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

TIPOS DE DATOS
Tipos compuestos o complejos
Cadena de caracteres
Es una secuencia ordenada de longitud arbitraria (aunque finita) de elementos que pertenecen a
un cierto alfabeto
EJEMPLO
x=
aacbbcba
Estructura de datos
Una estructura de datos define la organizacin e interrelacionamiento de estos, y un
conjunto de operaciones que se pueden realizar sobre l

EJEMPLO
Vectores (matriz o array)
Registro (estructura de
datos)
Ing. Luis G. Molero M.Sc.
M.Sc.

Introduccin a la Computacin

EXPRESIONES

Son un mtodo por medio del cual se pueden realizar bsquedas dentro de cadenas de caracteres. Sin
importar si la bsqueda requerida es de dos caracteres en una cadena de 10 o si es necesario encontrar
todas las apariciones de un patrn definido de caracteres en un archivo de millones de caracteres, las
expresiones regulares proporcionan una solucin para el problema.

El Punto "."
La barra inversa o
contrabarra"\"
Los corchetes "[]"
La barra "|"
El signo de dlar "$"
El acento circunflejo "^"
Los parntesis"()"
El signo de interrogacin "?"
Las llaves "{}"
El asterisco "*"
El signo de suma "+"

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

OPERADORES
Aritmticos

Nos permiten, bsicamente, hacer cualquier operacin aritmtica, que necesitemos (ejemplo: suma,
resta, multiplicacin, etc). En la siguiente tabla se muestran los operadores de los que disponemos en
C y su funcin asociada.

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

OPERADORES
Lgicos

Utilizan para combinar valores lgicos (Verdadero/Falso) y obtener nuevos valores lgicos que
determinen el flujo de control de un algoritmo o programa.
Relacionales
Al igual que en matemticas, estos operadores nos permitirn evaluar las relaciones
(igualdad, mayor, menor, etc) entre un par de operandos (en principio, pensemos en
nmeros). Los operadores relacionales de los que disponemos en C son:

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

PASOS PARA RESOLVER UN PROBLEMA.

Pasos

Etapa

Descripcin

Anlisis del problema

Diseo de algoritmo

Conducen al diseo detallado por medio un cdigo


escrito en forma de un algoritmo

Codificacin

Se implementa el algoritmo en un cdigo escrito en


un lenguaje de programacin. Refleja las ideas
desarrolladas en las etapas de anlisis y diseo

Compilacin y ejecucin

Traduce el programa fuente a programa en cdigo


de maquina y lo ejecuta.

Verificacin

Depuracin

Documentacin

Busca errores en las etapas anteriores y los elimina.


Son comentarios, etiquetas de texto, que facilitan la
comprensin del programa

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

DISEO DEL ALGORITMO


Anlisis de proceso implica que hace el programa.
Diseo implica como se hace o realiza la tarea (problema) solicitado

EN EL DISEO
El todo es la sumatoria de las partes.
Divide el todo en varias partes.

En la resolucin de un problema complejo, se divide en varios sub problemas y seguidamente se vuelven


a dividir los sub problemas en otros mas sencillos, hasta que puedan implementarse en el computador.
Esta caracterstica define lo que se entiende como diseo descendente( Top-Down / Norte-Sur ) o diseo
modular.
El proceso de ruptura del problema en cada etapa se llama refinamiento sucesivo.
Cada problema se resuelve mediante un modulo (subprograma) y tiene un solo punto de entrada y
un solo punto de salida.
Un programa bien diseado consta de un programa principal (modulo de nivel mas alto) que llama a
subprogramas (mdulos de nivel mas bajo), que a su vez pueden llamar otros sub programas.
Ing. Luis G. Molero M.Sc.
M.Sc.

Introduccin a la Computacin

DISEO DEL ALGORITMO

Los programas que se estructuran de esta forma, se dicen que tienen diseo modular y el mtodo de
romper el programa en modos pequeos se llama programacin modular.
Los mdulos pueden ser planificados, codificados, compilados y depurados independientemente pueden
ser intercambiados entre si.
Este proceso implica la ejecucin de los siguientes pasos:

programar un modulo

comprobar un modulo

depurar el modulo

combinar el modulo con mdulos anteriores

Este proceso convierte el resultado del anlisis del problema en un diseo modular con refinamientos
sucesivos que permiten una traduccin a un lenguaje que se denomina diseo del algoritmo.

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

DISEO DEL ALGORITMO

El algoritmo se puede representar por medio de dos formas

Pseudo cdigo

Es el lenguaje de especificacin de algoritmos y tiene una estructura: Las instrucciones se


escriben en ingles o en palabras similares al ingles o espaol que facilitan la escritura de
programacin
Para la resolucin de una ecuacin de segundo grado se escribira
inicio
Introducir coeficientes a, b y c
Imprimir ttulos primera raz, segunda raz, no tiene solucin,
Calcular raz 1 y raz 2
Imprimir raz 1 y raz 2
Fin

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

DISEO DEL ALGORITMO

Diagramas de flujo (flows charts):

Es la representacin grafica del algoritmo; segn la ANSI consta de una simbologa , que
tiene los siguientes significados:

Proceso

Cualquier tipo de operacin que origine


cambio de valor, formato, posicin de la
informacin almacenada en memoria,
operaciones aritmticas, de
transferencia, etc.

Entrada/Salida

Cualquier tipo de de introduccin de


datos en la memoria desde los
perifericosentradao registros de
informacin procesada en un perifrico
de salida

Impresora

Se utiliza en ocasiones en lugar del


smbolo de entrada/salida

Monitor

Pantalla ; en ocasiones se utiliza en


lugar de smbolo de entrada / salida
Ing. Luis G. Molero M.Sc.
M.Sc.

Introduccin a la Computacin

DISEO DEL ALGORITMO

Diagramas de flujo (flows charts):

Proceso: Decisin
Indica operaciones lgicas o de
comparacin entre datos- normalmente
entre dos y en funcin del resultado,
determina cual de los dos caminos
alternativos se debe seguir; normalmente
tiene dos salidas- respuestas si o no.
Conector
Sirve para enlazarlos partes
cualesquiera de un organigrama a travs
de un conector de salida y otro en la
entrada. En la misma pagina del
diagrama
Conector

Conexin entre dos puntos del


organigrama situados en paginas
diferentes

Teclado

En ocasiones se utiliza en lugar del


smbolo de entrada/salida

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

PSEUDOCDIGO

Un pseudocdigo o falso lenguaje, es una serie de normas lxicas y gramaticales parecidas a la


mayora de los lenguajes de programacin, pero sin llegar a la rigidez de sintaxis de estos ni a la
fluidez del lenguaje coloquial. Esto permite codificar un programa con mayor agilidad que en
cualquier lenguaje de
programacin, con la misma validez semntica, normalmente se utiliza en las fases de anlisis o
diseo de Software, o en el estudio de un algoritmo. Forma parte de las distintas herramientas de la
ingeniera de software. No hay ningn compilador o intrprete de pseudocdigo informtico, y por
tanto no puede ser ejecutado en un ordenador, pero las similitudes con la mayora de los lenguajes
informticos lo hacen fcilmente convertible.
El pseudocdigo describe un algoritmo utilizando una mezcla de frases en lenguaje comn,
instrucciones de programacin y palabras clave que definen las estructuras bsicas. Su objetivo es
permitir que el programador se centre en los aspectos lgicos de la solucin, evitando las reglas de
sintaxis de los lenguajes de programacin convencionales.
No siendo el pseudocdigo un lenguaje formal, varan de un programador a otro, es decir, no hay
una estructura semntica ni arquitectura estndar. Es una herramienta gil para el estudio y diseo
de aplicaciones, veamos un ejemplo, que podramos definir como: lenguaje imperativo, de tercera
generacin,
segn el mtodo de programacin estructurada.

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

SENTENCIAS A UTILIZAR

Tipos de Datos
- Numericos: (1, 15,67888234, 3.141596)
+ Entero: 1, 234, 4545 (Valores sin dgitos decimales)
+ Real: 1233.23 , 3.1416, 3454545.25 (Valores con
decimales)
- Cadena: Letras (A, Pedro, Luis)
- Logico : Verdadero (V) o Falso (F)
Declarar: declara las variables a utilizar
Iniciar: Inicializa las variables a sus valores originales
Leer: Ingresa datos a las variables desde el teclado
Salida (Escribir) : Presenta los datos, literales o valores deseados en la pantalla
Inicio : Inicia los procesos
Fin : Finaliza los procesos

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

ESTRUCTURAS PARA LA TOMA DE DECISIONES

Estas estructuras permiten bifurcar la direccin de ejecucin de un programa; en otro orden de ideas,
permite seleccionar la parte del programa que se desea procesar

Bloque Si

Si (Condicion) Entonces
sentencia 1
Sentencia 2
Sino
Sentencia 3
Sentencia 4
FinSi

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

ESTRUCTURAS PARA LA TOMA DE DECISIONES

Estas estructuras estn presentes en Visual tal como en otros lenguajes de


programacin.

En Caso de
Caso Var = 1
Sentencia 11
Sentencia 12
Caso Var = 2
Sentencia 21
Sentencia 22
Caso Var = 3
Sentencia 31
Sentencia 32
Fin Caso

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

ESTRUCTURAS REPETITIVAS
Segmento de cdigo de programa que permite repetir un proceso tantas veces como se desee o
necesite
Mientras (Condicin)
Sentencia 1
Sentencia 2
Sentencia 3
Sentencia 4
Sentencia 1
Sentencia 2
Fin Mientras
Estas estructuras estn presentes en Visual tal como en otros lenguajes de
programacin.
Para I=1 Hasta 10
Sentencia 11
Sentencia 12
Sentencia 13
Sentencia 14
Sentencia 15
Sentencia 16
Sentencia 17
Fin Para
Ing. Luis G. Molero M.Sc.
M.Sc.

Introduccin a la Computacin

EJERCICIOS DIAGRAMAS DE FLUJO


ENTRADA

Ejercicio 1.
Se desea realizar un diagrama de flujo que sume dos numero introducidos por teclado.

PROCESO

IMPRESORA

Inicio

X, Y, R

DECISION

X, Y
CONECTOR

X+Y=R
TECLADO

Fin

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

EJERCICIOS DIAGRAMAS DE FLUJO


ENTRADA

Ejercicio 2.
Se desea realizar un diagrama de flujo que reste dos numero introducidos por teclado.

PROCESO

IMPRESORA

Inicio

X, Y, R

DECISION

X, Y
CONECTOR

X-Y=R
TECLADO

Fin

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

EJERCICIOS DIAGRAMAS DE FLUJO


ENTRADA

Ejercicio 3.
Se desea realizar un diagrama de flujo que multiplique dos numero introducidos por teclado.

PROCESO

IMPRESORA

Inicio

X, Y, R

DECISION

X, Y
CONECTOR

X*Y=R
TECLADO

Fin

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

EJERCICIOS DIAGRAMAS DE FLUJO


ENTRADA

Ejercicio 4.
Se desea realizar un diagrama de flujo que divida dos numero introducidos por teclado.

Inicio

PROCESO

IMPRESORA

X, Y, R
DECISION

X, Y

Y=0
No

Si

Error

CONECTOR

X/Y=R
TECLADO

R
Fin

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

EJERCICIOS DIAGRAMAS DE FLUJO


ENTRADA

Ejercicio 5.
Se desea realizar un diagrama de flujo para la biblioteca que determine si el libro es universitario
o es de escuela superior. Si el libro es de escuela superior no se va a utilizar, si el libro es
universitario, se crea un sello en la impresora con las palabras UNI.

PROCESO

IMPRESORA

Inicio
DECISION

Libro

Libro
CONECTOR

UNI?
No

Si

Imprimir UNI
TECLADO

Fin

Ing. Luis G. Molero M.Sc.


M.Sc.

Introduccin a la Computacin

EJERCICIOS PROPUESTOS

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.

Obtenga el mayor valor de tres nmeros enteros ingresados por teclado.


Desarrollar un diagrama de flujo que calcule el promedio de notas de un curso de computacin.
Obtener el promedio de los nmeros pares negativos de una serie de nmeros enteros.
Obtener el cuadrado de un nmero ingresado por teclado y si el resultado es mayor a 49 entonces
imprimir resultado fuera de rango.
En un tringulo rectngulo, conocidos uno de sus lados y la hipotenusa, obtenga el valor del otro lado.
Calcular el rea de un cuadrado y su permetro.
Desarrollar un programa que determine si un Nmero Ingresado por teclado es positivo o no.
Se desea calcular de forma Independiente, la suma de los nmeros pares e impares de los nmeros
comprendidos del 1 al 200.
Calcular el promedio de 100 nmeros impares.
Cuntos nmeros Impares hay en un conjunto de 100 nmeros Enteros.
Sumar los nmeros impares positivos menores que 100 y obtenga el promedio de ellos.
Calcule si un nmero entero ingresado por teclado es primo o no.
Dados el radio y la altura de un cilindro, realizar un programa que calcule el volumen de un cilindro.

Ing. Luis G. Molero M.Sc.


M.Sc.

Vous aimerez peut-être aussi