Está en la página 1de 13

Guía Nº 1 1

CDLR/2015
COLEGIO UNIVERSITARIO DE CARACAS
Prof.: C. de la Rosa
Algorítmica y Programación

GUÍA Nº 1: CONCEPTOS BÁSICOS

 COMPUTADOR: Es una herramienta que permite trabajar con datos para obtener
información.

 DATO: Es un elemento o conjunto de caracteres que utiliza el computador.

 INFORMACIÓN: Es el resultado de procesar uno o más datos, esta información puede


entrar en otro proceso para obtener otra información (jerarquización de procesos).

 PROCESAMIENTO DE DATOS: Es una acción a la cual se somete un dato para obtener


de él resultados o información. Formas de procesamientos de datos:

Recolección Modificación Comparación Depuración Almacenamiento


Eliminación Cálculo Ordenación Comunicación Codificación
Selección Clasificación Distribución Análisis Control

 OPERADORES: Son todos los símbolos que representan enlaces entre cada uno de los
argumentos que intervienen en una operación y se utilizan para construir expresiones.
Los operadores se clasifican en:

1.- OPERADORES RELACIONALES O CONDICIONALES:

< Menor que <= Menor o igual que


> Mayor que >= Mayor o igual que
= Igual <> Distinto

2.- OPERADORES ARITMÉTICOS:

+ Suma / división real


- Resta mod resto entero
* Multiplicación div división entera
** Potenciación

3.- LÓGICOS O BOOLENOS:

OR (o) La expresión que forma es cierta cuando al menos uno de sus operadores
es cierto. Es el operador lógico de disyunción.
AND (y) La expresión formada es cierta cuando todos los operadores son ciertos.
Es el operador de conjunción.
NOT Afecta a la expresión cambiando su estado lógico, si era cierto lo
transforma en falso y viceversa.
Guía Nº 1 2
CDLR/2015
4.- OTROS OPERADORES:

+ Más concatenado, se utiliza para unir expresiones alfanuméricas.


( ) Paréntesis que se utilizan para anidar expresiones.

Orden de evaluación de los operadores:

1.- Paréntesis (empezando por los más internos). 5.- Concatenación.


2.- Potencias. 6.- Relacionales.
3.- Productos y divisiones. 7.- Lógicos.
4.- Sumas y restas.

 VARIABLES: Es un espacio de memoria, donde se puede almacenar el valor de un dato


y puede ser modificado. El nombre de la variable es asignado por el programador, tiene
una longitud máxima de ocho caracteres, empezando con una letra y no puede contener
espacios en blanco, el resto de los dígitos pueden ser números, ejemplos: nombre,
NOTA1, d4f5, Direccion, etc. Las palabras reservadas del lenguaje no pueden utilizarse
como nombres de variables. Tipos de Variables:

 Numéricas: Variables que solo contienen números. Ejemplos: A=3, edad=23.


 Alfanuméricas: Variables que contienen letras o letras con números. Ejemplos:
Nombre=”Carmen”, Direccion=”Calle 5, Edif. San José”.
 Booleanas: Variables que almacena datos booleanos (verdad-Falso).

 CONSTANTES: Es un espacio de memoria, donde se almacena un valor que no puede


ser modificado.

 PROCESADOR: Es un dispositivo capaz de interpretar instrucciones y procesarlas.

 FIN DE DATOS: Se habla de fin de datos cuando son pocos datos introducidos por
teclado. Se aplica cuando se ingresa información uno a uno, en cambio Fin de archivo
es una condición que se da en un proceso automatizado y cuando se ha leído todos los
registros de un archivo, se utiliza para muchos datos.

 REGISTRO: Es una estructura formada por campos agrupados físicamente en forma


continua.

 ASIGNACIÓN DE MEMORIA: Es el proceso en el cual a una variable o a una constante


se le asigna una localización de memoria A 1.

 CONTADOR: Es una variables que se puede incrementar en una unidad, su propósito es


contar. Formato: CONT = CONT + 1

 ACUMULADOR: Es una variable cuyo propósito es sumar resultados de una operación


Valor
aritmética. Formato: ACUM  ACUM  
Expresión Matemática
Guía Nº 1 3
CDLR/2015
 CICLO ITERATIVO: Por iteración se entiende la repetición controlada de una secuencia
de funciones, un proceso se repetirá mientras se cumpla una determinada condición o
evento.

 SINTAXIS: Este término se utiliza para denotar la forma correcta de escribir las
instrucciones de un lenguaje de programación.

 FASES DE RESOLUCIÓN DE UN PROBLEMA CON COMPUTADORA:

 Análisis del problema Las dos primeras fases conducen a un diseño detallado
 Diseño del algoritmo escrito en forma de algoritmo.
 Codificación Se implementa el algoritmo en un código escrito en un
lenguaje de programación, reflejando las ideas desarrolladas
en las fases de análisis y diseño.
 Compilación y La fase de compilación traduce el código fuente a código
ejecución máquina mediante el empleo de intérpretes o compiladores y
en la fase de ejecución se corre el programa sobre la
computadora.
 Verificación En las fases de verificación y depuración el programador
busca errores de las etapas anteriores y los elimina.
 Depuración Podrá comprobar que mientras más tiempo gaste en la fase
de análisis y diseño menos tiempo invertirá en la fase de
verificación y depuración.
 Documentación Se debe realizar la fase de documentación del programa,
con objeto de que cualquier persona ajena al mismo pueda
entender qué hace y cómo lo hace.

 ANÁLISIS DEL PROBLEMA:

Análisis del problema

Definición del problema Datos de entrada Datos de salida o Resultados

EJEMPLO:

Una persona ha trabajado 38 horas en una semana dada y gana a razón de 2.500 bolívares
la hora. La tasa de impuestos del Estado es del 15,5 por 100 de su paga bruta. Se desea
conocer su paga bruta, el descuento por el impuesto y la paga neta del trabajador.

La información de entrada es:


Guía Nº 1 4
CDLR/2015
 Horas trabajadas: 38
 Impuestos: 15.5%
 Paga/hora: 2.500 Bs.

con estos datos de entrada tenemos todo lo necesario para obtener los datos de salida
simplemente realizando las siguientes operaciones:

 PagaBruta Horas Trabajadas * Paga_Hora


 Impuestos PagaBruta * 15.5%
 PagaNeta PagaBruta – Impuestos.

 DISEÑO DEL ALGORITMO: Es el proceso que convierte los resultados del análisis del
problema en un diseño modular con refinamientos (pasos) sucesivos que permitan una
posterior traducción a un lenguaje. El diseño del algoritmo es independiente del lenguaje
de programación en el que se vaya a codificar posteriormente. Todo algoritmo debe
cumplir con las siguientes características:

 Debe estar escrito de tal forma que sea fácil de leer y de entender.
 Debe ocupar lo menos posible para aprovechar al máximo la memoria del computador
y para que el tiempo de ejecución sea el menor posible.
 Debe tener final.
 Debe ser lógico.
 Debe ser interpretado por terceras persona.

EJEMPLO: Escribir un algoritmo para hacer una torta:

Algoritmo sencillo Algoritmo en Narrativa


Paso 1: Iniciar. Paso 1: Iniciar.
Paso 2: Batir la mantequilla. Paso 2: ¿Tengo los ingredientes?
Paso 3: Agregar azúcar Paso 3: Si los tengo voy al paso 5.
Paso 4: Agregar leche. Paso 4: Si no los tengo no hago la torta, FIN
Paso 5: Agregar harina. Paso 5: ¿Funciona el horno?
Paso 6: Agregar huevos. Paso 6: Si funciona voy al paso 8
Paso 7: Preparar la tortera. Paso 7 Si no funciona FIN.
Paso 8: Batir todo. Paso 8: Mezclar ingredientes.
Paso 9: Colocar en el molde. Paso 9: Preparar la tortera.
Paso 10: Meter al horno. Paso 10: Colocar la mezcla en el molde.
Paso 11: Fin Paso 11: Meter al horno.
Paso 11: Fin

 HERRAMIENTAS DE PROGRAMACIÓN: Las dos herramientas más utilizadas


comúnmente para diseñar algoritmos son: diagramas de flujo y pseudocódigo.

 DIAGRAMAS DE FLUJO: Un diagrama de flujo es una representación gráfica de un


algoritmo. Los símbolos utilizados han sido normalizados por el Instituto Norteamericano
de Normalización (ANSI), y los más frecuentemente empleados son los siguientes:
Guía Nº 1 5
CDLR/2015

Terminal SubPrograma

Entrada/ Salida Proceso

No
Decisión Conectores

Si

Tipos de gráficos básicos en el diagrama de flujo:

a) Gráfico de secuencia simple: Se ejecuta una instrucción después de la otra en el orden


en el cual fueron almacenadas.

b) Gráfico de selección: Requiere un chequeo y dependiendo del resultado se escoge una


de las dos trayectorias.

No si
A

C B
Guía Nº 1 6
CDLR/2015
c) Gráfico de lazo o ciclo: Las ejecuciones E y F continúan en forma de ciclo mientras D
sea verdadera, si es falso no se ejecutan E y F. La lógica es ejecútese E y F mientras D
sea verdadera.

Falso
D

Verdadera

d) Gráfico de transferencia de flujo de control:

Falso
G

Verdadera

J
Guía Nº 1 7
CDLR/2015
 Reglas para construir un Diagrama de Flujo:

1.- Inicio de diagrama de flujo.


2.- Control de lectura de datos.
3.- Proceso detallado de cada registro.
4.- Control de salida de la información.
5.- Casos extraordinarios.
6.- Fin del diagrama de flujo.

Ejercicio: Dado un registro de tres campos diferentes imprimir el campo que resulte mayor
de los tres. El objetivo del problema es “Hallar el número mayor de un registro”.
Datos de entrada: Campo 1 (C1), Campo 2 (C2) y Campo 3 (C3)
Salida requerida: El mayor de los tres campos.

INICIO

LEER
REGISTRO

Si Si El mayor
C1 > C2 C1 > C3 de los tres FIN
Es C1

No No A

El mayor
No de los tres
A C2 > C3 es C3

Si

FIN
El mayor
de los tres
es C2

FIN
Guía Nº 1 8
CDLR/2015
 DIAGRAMACIÓN ESTRUCTURADA: Consiste en representar los algoritmos mediante
bloques, lo que permite una visión mucho más estructurada de ellos y por consiguiente
mayor facilidad al traducirlos al lenguaje de programación. El diagrama se ve como un
conjunto de bloques y sub-bloques, organizado en forma lógica y que se recorre de arriba
hacia abajo. Cada bloque ejecuta una operación específica.

Ejercicio: el anterior que se efectuó en algoritmo: Dado un registro de tres campos diferentes
imprimir el campo que resulte mayor de los tres. El objetivo del problema es “Hallar el
número mayor de un registro”.
Datos de entrada: Campo 1 (C1), Campo 2 (C2) y Campo 3 (C3)
Salida requerida: El mayor de los tres campos.

INICIO
LEER REGISTRO C1, C2, C3
C1 > C2
SI NO
C1 > C3 C2 > 3C

SI NO SI NO
MAYOR = C1 MAYOR = C3 MAYOR = C2 MAYOR = C3
IMPRIMIR: “EL MAYOR ES:” MAYOR
FIN

 PSEUDOCÓDIGO: El pseudocódigo es una herramienta de programación en la que las


instrucciones se escriben en palabras de lenguaje común combinadas con instrucciones
del lenguaje de programación, que facilitan tanto la escritura como la lectura de
programas. En esencia, el pseudocódigo se puede definir como un lenguaje de
especificaciones de algoritmos.

Al contrario que los lenguajes de programación de alto nivel como Pascal, Basic, C,
etc., no existe un conjunto de reglas que definan con precisión lo que es y lo que no es
pseudocódigo.

Como ejemplos de palabras reservadas de los distintos lenguajes de alto nivel


expresado en pseudocódigo podrían tener las siguientes:

inicio Begin / { si if
fin End / } entonces then
leer read/input / scanf Si-no else
escribir write /print/prinf según Case
desde for mientras While
para For repetir Repeat
Hasta que Until entero Integer, int,
procedimiento Procedure, module caracter Char
:=, = (asignación) { } / /* * / comentarios
Guía Nº 1 9
CDLR/2015
A continuación se desarrolla un pseudocódigo que calcula el volumen de una esfera
de radio R:

EJEMPLO:
Algoritmo Esfera;
{Algoritmo que calcula el volumen de una esfera a partir de un radio}
Constantes
Pi = 3.14159
Variables
Radio: integer;
volumen :real;
Inicio
Escribir (‘Introduzca el radio de la esfera: ‘);
Leer (radio);
volumen 4/3*pi*radio*radio
Escribir (‘volumen de la esfera de radio’,radio,’ = ‘, volumen)
Fin

Ejemplo:
El pseudocódigo del programa Tabla de Depreciación acumuladas y los valores reales
costo  valor de recupeació n
de cada año ( D  ) es:
vida útil

Previsiones de depreciación
Introducir costo
vida útil
valor final de rescate (recuperación)
imprimir cabeceras
Establecer el valor inicial del Año
Calcular depreciación
mientras valor año <= vida útil hacer
calcular depreciación acumulada
calcular valor actual
imprimir una línea de la tabla
incrementar el valor del año
fin de mientras

Ejemplo:

Calcular la paga neta de un trabajador conociendo el número de horas trabajadas, la tarifa


horaria la tasa de impuestos.

Algoritmo:
1. Leer Horas, Tarifa, Tasa
2. Calcular PagaBruta = Horas*Tarifa
3. Calcular Impuesto= PagaBruta *tasa
4. Calcular PagaNeta= PagaBruta- Impuesto
5. Visualizar PagaBruta, Impuesto y PagaNeta.
Guía Nº 1 10
CDLR/2015
Ejemplo: Algoritmo para calcular la suma de los primeros 100 números enteros.

1. Establecer Contador a 1
2. Establecer Suma a 0
3. mientras Contador < 100 hacer
Sumar Contador a Suma
Incrementar Contador en 1
Fin-mientras
4. Visualizar Suma

 Codificación de un programa:

Codificación es la escritura en un lenguaje de programación de la representación del


algoritmo desarrollada en las etapas precedentes. Dado que el diseño de un algoritmo es
independiente del lenguaje de programación utilizado para su implementación, el código
puede ser escrito con igual facilidad en un lenguaje o en otro.

Para realizar la conversión del algoritmo en programa se deben sustituir las palabras
reservadas en español por sus homónimos en inglés, y las operaciones/instrucciones
indicadas en lenguaje natural expresarlas en el lenguaje de programación correspondiente.

El programa correspondiente al problema Previsiones de depreciación en el Lenguaje Turbo


Pascal es:

PROGRAM previsiones;
{ Este programa obtiene una tabla de depreciaciones acumuladas y valores reales de cada
año de un determinado producto}
VAR
Costo, Deprecia, Valor_Recupera, Valor_Actual, Acumulada, Valor_Anual: REAL;
A, Vida_Util:INTEGER;
BEGIN
WriteLn ('Introduzca coste, valor recuperación y Vida_Util’);
ReadLn (Coste, Valor_Recupera, Vida_Util);
WriteLn ('Introduzca año actual');
ReadLn (A);
Valor_Actual := Costo;
Deprecia := (Coste - Valor_Recupera) / Vida_Util;
Acumulada:= 0;
Write ('Año' : 7, 'Depreciacion':15, 'Dep. Acumulada':17);
WriteLn ('Valor_Actual':14);
While A < Vida_Util do
BEGIN
Acumulada:=Acumulada + Deprecia;
Valor_Actual := Valor_Actual_Depreciacion;
Write (A :8, Deprecia :11:1, Acumulada :17);
A:=A + 1
END;
END.
Guía Nº 1 11
CDLR/2015
Es necesario observe las siguientes características básicas:

 Cabecera del programa. Nombre del programa, autor, fecha de creación, etc.
 Lista de variables. Es obligatoria su declaración en Pascal.
 Legibilidad: Los programas deben ser lo más legibles posible, por ello el espaciado y las
sangrías (márgenes interiores) se deben utilizar con frecuencia.
 Diseño modular: Este simple programa sólo consta de un módulo principal.
 Documentación: Los programas deben incluir comentarios internos, en forma de líneas
con separadores { } o bien (* *).

 Documentación interna:

La documentación de un programa se clasifica en interna y externa. La documentación


interna es la que se incluye dentro del código del programa fuente mediante comentarios que
ayudan a la comprensión del código. La externa se fundamenta en manuales, folletos etc.

 Compilación y ejecución de un programa:

Una vez que el algoritmo se ha convertido en un PROGRAMA FUENTE, es preciso


introducirlo en memoria mediante el teclado y almacenarlo posteriormente en un disco. Esta
operación se realiza con un programa editor, posteriormente el programa fuente se convierte
en un archivo de programa que se guarda (graba) en disco. El programa fuente debe ser
traducido a lenguaje máquina. Este proceso se realiza con el COMPILADOR y el sistema
operativo que se encarga prácticamente de la compilación. Si tras la compilación se
presentan errores (errores de compilación) en el programa fuente, es preciso volver a editar
el programa, corregir los errores y compilar de nuevo. Este proceso se repite hasta que no se
producen errores, obteniéndose el PROGRAMA OBJETO que todavía no es ejecutable
directamente. Suponiendo que no existen errores en el programa fuente, se debe instruir al
sistema operativo para que realice la fase de montaje o enlace (link), carga, del programa
objeto con las librerías del programa del compilador. El proceso de montaje produce un
PROGRAMA EJECUTABLE.

Cuando el programa ejecutable se ha creado, se puede ya ejecutar (correr o rodar)


desde el sistema operativo con sólo teclear su nombre (en el caso de DOS). Suponiendo que
no existen errores durante la ejecución (llamados errores en tiempo de ejecución) se
obtendrá la salida de resultados del programa. Las instrucciones u órdenes para compilar y
ejecutar un programa Pascal puede variar según el tipo de compilador. Así Turbo Pascal
compila y ejecuta con una sola orden mientras que los compiladores clásicos de Pascal
siguen un proceso similar al expuesto anteriormente: compilar, enlazar y ejecutar.

 Verificación y depuración de un programa:

La verificación o compilación de un programa es el proceso de ejecución del programa


con una amplia variedad de datos de entrada, llamados datos de test o prueba, que
determinarán si el programa tiene errores. La depuración es el proceso de encontrar los
errores del programa y corregir o eliminar dichos errores.
Guía Nº 1 12
CDLR/2015
Cuando se ejecuta un programa, se pueden producir tres tipos de errores:

 Errores de compilación: Se producen normalmente por un uso incorrecto de las reglas


del lenguaje de programación y suelen ser errores de sintaxis. Si existe un error de
sintaxis, la computadora no puede comprender la instrucción, no se obtendrá el programa
objeto y el compilador imprimirá una lista de todos los errores encontrados durante la
compilación.

 Errores de ejecución: Estos errores se producen por instrucciones que la computadora


puede comprender pero no ejecutar. Ejemplos típicos son: división por cero y raíces
cuadradas de números negativos. En estos casos se detiene la ejecución del programa y
se imprime un mensaje de error.

 Errores lógicos: Se producen en la lógica del programa y la fuente del error suele ser el
diseño del algoritmo. Estos errores son los más difíciles de detectar, ya que el programa
puede funcionar y no producir errores de compilación ni de ejecución, y sólo puede
advertir el error por la obtención de resultados incorrectos. En este caso se debe volver a
la fase de diseño del algoritmo, modificar el algoritmo, cambiar el programa fuente y
compilar y ejecutar una vez más.

 Documentación y Mantenimiento:

La documentación de un problema consta de las descripciones de los pasos a dar en


el proceso de resolución de un problema. La importancia de la documentación debe ser
destacada por su decisiva influencia en el producto final. Programas pobremente
documentados son difíciles de leer, más difíciles de depurar y casi imposibles de mantener y
modificar. La documentación de un programa puede ser interna y externa. La
documentación interna es la contenida en líneas de comentarios. La documentación externa
incluye análisis, diagramas de flujo y/o pseudocódigo, manuales de usuario con instrucciones
para ejecutar el programa y para interpretar los resultados.

La documentación es vital cuando se desea corregir posibles errores futuros o bien


cambiar el programa. Tales cambios se denominan mantenimiento del programa. Después
de cada cambio la documentación debe ser actualizada para facilitar cambios posteriores. Es
práctica numerar las sucesivas versiones de los programas 1.0, 1.1, 2.0, 2.1, etc. (Si los
cambios introducidos son importantes, se varía el primer dígito [1.0, 2.0,...], en caso de
pequeños cambios sólo se varía el segundo dígito [2.0, 2.1,...].)

 PROGRAMACIÓN MODULAR:

La programación modular es uno de los métodos de diseño más flexible y potente para
mejorar la productividad de un programa. En programación modular el programa se divide en
módulos (partes independientes), cada una de las cuales ejecuta una única actividad o tarea
y se codifican independientemente de otros módulos. Cada uno de estos módulos se
analizan, codifican y ponen a punto por separado.
Guía Nº 1 13
CDLR/2015
 ESTRUCTURAS DE CONTROL:

Las estructuras de control de un lenguaje de programación son métodos de especificar


el orden en que las instrucciones de un algoritmo se ejecutarán. El orden de ejecución de las
sentencias (lenguaje) o instrucciones determina el flujo de control. Estas estructuras de
control son por consiguiente fundamentales en los lenguajes de programación y en los
diseños de algoritmos especialmente los pseudocódigos. Las tres estructuras de control
básico son: secuencia, selección y repetición.

La programación estructurada hace los programas más fáciles de escribir, verificar,


leer y mantener; utiliza un número limitado de estructuras de control que minimizan la
complejidad de los problemas.

 Teorema de la programación estructurada:

Un programa se define como propio si cumple las siguientes características:

 Posee un solo punto de entrada y uno de salida o fin para control del programa.
 Existen caminos desde la entrada hasta la salida que se pueden seguir y que pasan por
todas las partes del programa.
 Todas las instrucciones son ejecutables y no existen lazos o bucles infinitos (sin fin).

 Síntesis de la programación estructurada y modular:

La programación estructurada significa:

 El programa completo tiene un diseño modular.


 Los módulos se diseñan con metodología descendente (puede hacerse también
ascendente).
 Cada módulo se codifica utilizando las tres estructuras de control básicas: secuenciales,
selectivas y repetitivas (ausencia total de sentencias GOTO).
 Estructuración y modularidad son conceptos complementarios (se solapan).

EJERCICIOS

1. Diseñar una solución para resolver cada uno de los siguientes problemas y trate de refinar
sus soluciones mediante algoritmos adecuados:
a) Realizar una llamada telefónica desde un teléfono público.
b) Arreglar un pinchazo de una bicicleta.
c) Averiguar si una palabra introducida desde el teclado es un palíndromo. Un palíndromo
es una palabra que se lee de igual manera en sentido directo y en sentido inverso;
por ejemplo, “radar”.
d) Freír un huevo.
2. Escribir un algoritmo para:
a) Sumar dos números enteros.
b) Restar dos números enteros.
c) Multiplicar dos números enteros.
d) Dividir un número entero por otro.

También podría gustarte