Sie sind auf Seite 1von 31

Introducción a la Computación

UNIVERSIDAD RAFAEL BELLOSO CHACÍN


FACULTAD DE INGENIERIA

INTRODUCCIÓN 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.
Introducción a la Computación

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 más formal, un algoritmo es una secuencia finita de operaciones
realizables, no ambiguas, cuya ejecución da una solución de un problema en un tiempo finito.
El término algoritmo no está exclusivamente relacionado con la matemática, ciencias de la
computación o informática.

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 preparación de una comida (porque no están perfectamente definidos los pasos).
También existen ejemplos de índole matemática, como el algoritmo de la división para calcular el
cociente de dos números, el algoritmo de Euclides para calcular el máximo común divisor de dos
enteros positivos, o incluso el método de Gauss para resolver Sistema lineal de ecuaciones.

Ing. Luis G. Molero M.Sc.


M.Sc.
Introducción a la Computación

CONCEPTO

La definición de algoritmo aún no cuenta con la formalidad científica que


podría ser ideal para la matemática y las ciencias de la computación
(donde los algoritmos son esenciales pero a falta de formalidad no pueden
incluirse fácilmente 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 solución, 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
número de pasos, o sea, que tiene un fin; y definido, que si se sigue el
mismo proceso más de una vez llegaremos al mismo resultado.

Ing. Luis G. Molero M.Sc.


M.Sc.
Introducción a la Computación

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 relación entre la entrada y la salida. El algoritmo materializa
(efectúa) dicha relación. Un algoritmo es un resolvedor de un problema determinado.

PARA SOLUCIONAR COMPUTACIONALMENTE UN


PROBLEMA DEBEMOS:

1. Seleccionar un modelo matemático – computacional adecuado para el problema (representación


del
modelo)
2. Concebir con respecto a dicho modelo un algoritmo que dé solución al algoritmo (diseño del
algoritmo)
3. Programar el algoritmo en algún lenguaje de programación y ejecutar el programa en una
computadora (programación del algoritmo)

Ing. Luis G. Molero M.Sc.


M.Sc.
Introducción a la Computación

ESTRUCTURA BÁSICA:

inicio
datos de entrada (operaciones
básicas)
procesamiento de los datos
datos de salida
fin
HISTORIA

La palabra algoritmo proviene del nombre del matemático 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 fácil comprensión, de ahí que su principal logro no fuera el de crear
nuevos teoremas o corrientes de pensamiento, sino el de simplificar la matemática a punto tal que pudieran ser
comprendidas y aplicadas por un mayor número de personas. Cabe destacar cómo señaló las virtudes del
sistema decimal indio (en contra de los sistemas tradicionales árabes) y cómo explicó que, mediante una
especificación clara y concisa de cómo calcular sistemáticamente, se podrían definir algoritmos que fueran
usados en dispositivos mecánicos en vez de las manos (por ejemplo, ábacos).

También estudió la manera de reducir las operaciones que formaban el cálculo. Es por esto que aun no siendo el
creador del primer algoritmo, el concepto lleva aunque no su nombre, sí su pseudónimo.
Así, de la palabra algorismo, que originalmente hacía referencia a las reglas de uso de la aritmética utilizando
dígitos árabes, se evolucionó a la palabra latina, derivación de al-Khwarizmi, algobarismus, que más tarde
mutaría a algoritmo en el siglo XVIII. La palabra ha cambiado de forma que en su definición 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 máquina analítica en 1842.

Ing. Luis G. Molero M.Sc.


M.Sc.
Introducción a la Computación

DATOS

Datos son los hechos que describen sucesos y entidades."Datos" es una palabra en plural que
se refiere a más 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.
Introducción a la Computación

TIPOS DE DATOS

Tipo Ordinal

Tipos predefinidos

Tipo de dato entero

Es un tipo de dato que puede representar un subconjunto finito de los números enteros. El
número mayor que puede representar depende del tamaño del espacio usado por el dato y la
posibilidad (o no) de representar números negativos

EJEMPLO

Bytes = 4x8 = 32 bits


Con 32 bits se pueden representar 232=4294967296 valores:
Sólo positivos: del 0 al 4294967295
Positivos y negativos: del -2147483648 al 2147483647

Tipo de dato carácter

Cualquier signo tipográfico. Puede ser una letra, un número, un signo de puntuación o un
espacio. Este término se usa mucho en computación.

Ing. Luis G. Molero M.Sc.


M.Sc.
Introducción a la Computación

TIPOS DE DATOS

Tipo Ordinal

Tipos predefinidos

Tipo de dato lógico

El tipo de dato lógico o booleano es en computación aquel que puede representar valores
de lógica 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.
Introducción a la Computación

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 actúan como límite 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.
Introducción a la Computación

TIPOS DE DATOS

Tipo no Ordinal

Tipo de dato real

El tipo de dato real define un conjunto de números que pueden ser representados con la notación
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 región de memoria; en
otras palabras es una variable cuyo valor es una dirección de memoria

Ing. Luis G. Molero M.Sc.


M.Sc.
Introducción a la Computación

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 organización 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.
Introducción a la Computación

EXPRESIONES

Son un método por medio del cual se pueden realizar búsquedas dentro de cadenas de caracteres. Sin
importar si la búsqueda requerida es de dos caracteres en una cadena de 10 o si es necesario encontrar
todas las apariciones de un patrón definido de caracteres en un archivo de millones de caracteres, las
expresiones regulares proporcionan una solución para el problema.

El Punto "."
La barra inversa o
contrabarra"\"
Los corchetes "[]"
La barra "|"
El signo de dólar "$"
El acento circunflejo "^"
Los paréntesis"()"
El signo de interrogación "?"
Las llaves "{}"
El asterisco "*"
El signo de suma "+"

Ing. Luis G. Molero M.Sc.


M.Sc.
Introducción a la Computación

OPERADORES

Aritméticos

Nos permiten, básicamente, hacer cualquier operación aritmética, que necesitemos (ejemplo: suma,
resta, multiplicación, etc). En la siguiente tabla se muestran los operadores de los que disponemos en
C y su función asociada.

Ing. Luis G. Molero M.Sc.


M.Sc.
Introducción a la Computación

OPERADORES

Lógicos

Utilizan para combinar valores lógicos (Verdadero/Falso) y obtener nuevos valores lógicos que
determinen el flujo de control de un algoritmo o programa.

Relacionales

Al igual que en matemáticas, estos operadores nos permitirán evaluar las relaciones
(igualdad, mayor, menor, etc) entre un par de operandos (en principio, pensemos en
números). Los operadores relacionales de los que disponemos en C son:

Ing. Luis G. Molero M.Sc.


M.Sc.
Introducción a la Computación

PASOS PARA RESOLVER UN PROBLEMA.

Pasos Etapa Descripción


1 Análisis del problema Conducen al diseño detallado por medio un código
2 Diseño de algoritmo escrito en forma de un algoritmo

Se implementa el algoritmo en un código escrito en


3 Codificación un lenguaje de programación. Refleja las ideas
desarrolladas en las etapas de análisis y diseño

Traduce el programa fuente a programa en código


4 Compilación y ejecución
de maquina y lo ejecuta.
5 Verificación
Busca errores en las etapas anteriores y los elimina.
6 Depuración
Son comentarios, etiquetas de texto, que facilitan la
7 Documentación
comprensión del programa

Ing. Luis G. Molero M.Sc.


M.Sc.
Introducción a la Computación

DISEÑO DEL ALGORITMO


Análisis de proceso implica que hace el programa.

Diseño implica como se hace o realiza la tarea (problema) solicitado

EN EL DISEÑO

El todo es la sumatoria de las partes.

Divide el todo en varias partes.

En la resolución 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 característica define lo que se entiende como diseño descendente( Top-Down / Norte-Sur ) o diseño
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 diseñado consta de un programa principal (modulo de nivel mas alto) que llama a
subprogramas (módulos de nivel mas bajo), que a su vez pueden llamar otros sub programas.
Ing. Luis G. Molero M.Sc.
M.Sc.
Introducción a la Computación

DISEÑO DEL ALGORITMO

Los programas que se estructuran de esta forma, se dicen que tienen diseño modular y el método de
romper el programa en modos pequeños se llama programación modular.
Los módulos pueden ser planificados, codificados, compilados y depurados independientemente pueden
ser intercambiados entre si.
Este proceso implica la ejecución de los siguientes pasos:

1 programar un modulo
2 comprobar un modulo
3 depurar el modulo
4 combinar el modulo con módulos anteriores

Este proceso convierte el resultado del análisis del problema en un diseño modular con refinamientos
sucesivos que permiten una traducción a un lenguaje que se denomina diseño del algoritmo.

Ing. Luis G. Molero M.Sc.


M.Sc.
Introducción a la Computación

DISEÑO DEL ALGORITMO

El algoritmo se puede representar por medio de dos formas

Pseudo código

Es el lenguaje de especificación de algoritmos y tiene una estructura: Las instrucciones se


escriben en ingles o en palabras similares al ingles o español que facilitan la escritura de
programación
Para la resolución de una ecuación de segundo grado se escribiría

inicio
Introducir coeficientes a, b y c
Imprimir títulos primera raíz, segunda raíz, no tiene solución,
Calcular raíz 1 y raíz 2
Imprimir raíz 1 y raíz 2
Fin

Ing. Luis G. Molero M.Sc.


M.Sc.
Introducción a la Computación

DISEÑO DEL ALGORITMO

Diagramas de flujo (flows charts):

Es la representación grafica del algoritmo; según la ANSI consta de una simbología , que
tiene los siguientes significados:

Proceso Cualquier tipo de operación que origine


cambio de valor, formato, posición de la
información almacenada en memoria,
operaciones aritméticas, de
transferencia, etc.
Entrada/Salida Cualquier tipo de de introducción de
datos en la memoria desde los
perifericos”entrada”o registros de
información procesada en un periférico
de salida
Impresora Se utiliza en ocasiones en lugar del
símbolo de entrada/salida

Monitor Pantalla ; en ocasiones se utiliza en


lugar de símbolo de entrada / salida
Ing. Luis G. Molero M.Sc.
M.Sc.
Introducción a la Computación

DISEÑO DEL ALGORITMO

Diagramas de flujo (flows charts):

Proceso: Decisión
Indica operaciones lógicas o de
comparación entre datos- normalmente
entre dos y en función 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 través
de un conector de salida y otro en la
entrada. En la misma pagina del
diagrama
Conector Conexión entre dos puntos del
organigrama situados en paginas
diferentes
Teclado En ocasiones se utiliza en lugar del
símbolo de entrada/salida

Ing. Luis G. Molero M.Sc.


M.Sc.
Introducción a la Computación

PSEUDOCÓDIGO

Un pseudocódigo o falso lenguaje, es una serie de normas léxicas y gramaticales parecidas a la


mayoría de los lenguajes de programación, 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
programación, con la misma validez semántica, normalmente se utiliza en las fases de análisis o
diseño de Software, o en el estudio de un algoritmo. Forma parte de las distintas herramientas de la
ingeniería de software. No hay ningún compilador o intérprete de pseudocódigo informático, y por
tanto no puede ser ejecutado en un ordenador, pero las similitudes con la mayoría de los lenguajes
informáticos lo hacen fácilmente convertible.

El pseudocódigo describe un algoritmo utilizando una mezcla de frases en lenguaje común,


instrucciones de programación y palabras clave que definen las estructuras básicas. Su objetivo es
permitir que el programador se centre en los aspectos lógicos de la solución, evitando las reglas de
sintaxis de los lenguajes de programación convencionales.

No siendo el pseudocódigo un lenguaje formal, varían de un programador a otro, es decir, no hay


una estructura semántica ni arquitectura estándar. Es una herramienta ágil para el estudio y diseño
de aplicaciones, veamos un ejemplo, que podríamos definir como: lenguaje imperativo, de tercera
generación,
según el método de programación estructurada.

Ing. Luis G. Molero M.Sc.


M.Sc.
Introducción a la Computación

SENTENCIAS A UTILIZAR

Tipos de Datos
- Numericos: (1, 15,67888234, 3.141596)
+ Entero: 1, 234, 4545 (Valores sin dígitos 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.
Introducción a la Computación

ESTRUCTURAS PARA LA TOMA DE DECISIONES

Estas estructuras permiten “bifurcar” la dirección de ejecución 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.
Introducción a la Computación

ESTRUCTURAS PARA LA TOMA DE DECISIONES

Estas estructuras están presentes en Visual tal como en otros lenguajes de


programación.

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.
Introducción a la Computación

ESTRUCTURAS REPETITIVAS

Segmento de código de programa que permite repetir un proceso tantas veces como se desee o
necesite

Mientras (Condición)
Sentencia 1
Sentencia 2
Sentencia 3
Sentencia 4
Sentencia 1
Sentencia 2
Fin Mientras

Estas estructuras están presentes en Visual tal como en otros lenguajes de


programación.

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.
Introducción a la Computación

EJERCICIOS DIAGRAMAS DE FLUJO

ENTRADA
Ejercicio 1.

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

IMPRESORA

Inicio

DECISION
X, Y, R

X, Y
CONECTOR

X+Y=R

TECLADO
R

Fin

Ing. Luis G. Molero M.Sc.


M.Sc.
Introducción a la Computación

EJERCICIOS DIAGRAMAS DE FLUJO

ENTRADA
Ejercicio 2.

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

IMPRESORA

Inicio

DECISION
X, Y, R

X, Y
CONECTOR

X-Y=R

TECLADO
R

Fin

Ing. Luis G. Molero M.Sc.


M.Sc.
Introducción a la Computación

EJERCICIOS DIAGRAMAS DE FLUJO

ENTRADA
Ejercicio 3.

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

IMPRESORA

Inicio

DECISION
X, Y, R

X, Y
CONECTOR

X*Y=R

TECLADO
R

Fin

Ing. Luis G. Molero M.Sc.


M.Sc.
Introducción a la Computación

EJERCICIOS DIAGRAMAS DE FLUJO

ENTRADA
Ejercicio 4.

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

Inicio IMPRESORA

X, Y, R
DECISION

X, Y

Si
Y=0 Error
CONECTOR
No

X/Y=R
TECLADO

Fin

Ing. Luis G. Molero M.Sc.


M.Sc.
Introducción a la Computación

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 PROCESO
universitario, se crea un sello en la impresora con las palabras UNI.

IMPRESORA

Inicio

DECISION
Libro

Libro
CONECTOR

Si
UNI? Imprimir UNI
No
TECLADO
Fin

Ing. Luis G. Molero M.Sc.


M.Sc.
Introducción a la Computación

EJERCICIOS PROPUESTOS

1. Obtenga el mayor valor de tres números enteros ingresados por teclado.


2. Desarrollar un diagrama de flujo que calcule el promedio de notas de un curso de computación.
3. Obtener el promedio de los números pares negativos de una serie de números enteros.
4. Obtener el cuadrado de un número ingresado por teclado y si el resultado es mayor a 49 entonces
imprimir resultado fuera de rango.
5. En un triángulo rectángulo, conocidos uno de sus lados y la hipotenusa, obtenga el valor del otro lado.
6. Calcular el área de un cuadrado y su perímetro.
7. Desarrollar un programa que determine si un Número Ingresado por teclado es positivo o no.
8. Se desea calcular de forma Independiente, la suma de los números pares e impares de los números
comprendidos del 1 al 200.
9. Calcular el promedio de 100 números impares.
10. Cuántos números Impares hay en un conjunto de 100 números Enteros.
11. Sumar los números impares positivos menores que 100 y obtenga el promedio de ellos.
12. Calcule si un número entero ingresado por teclado es primo o no.
13. 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.

Das könnte Ihnen auch gefallen