You are on page 1of 15

Universidad Nacional del Litoral

Facultad de Ingeniería y Ciencias Hídricas


Departamento de Informática

FUNDAMENTOS
DE PROGRAMACIÓN
Asignatura correspondiente al plan de estudios
de la carrera de Ingeniería Informática

UNIDAD 5
INTRODUCCIÓN A LA
PROGRAMACION

Ing. Horacio Loyarte ® 2008


Unidad 5 2

UNIDAD 6
Introducción a la la Programación

Resumen de Conceptos
Introducción
En las unidades anteriores se han resuelto numerosos problemas escribiendo
algoritmos mediante un pseudolenguaje o mediante diagramas de flujo. Para
probar estos algoritmos se efectuaron pruebas de escritorio, ejecutando acciones
y simulando lo que haría una computadora. A partir de aquí, se codificarán estas
soluciones algorítmicas empleando un lenguaje de programación interpretable
por una computadora, creando un programa. De esta forma, será la propia
computadora la que ejecute el algoritmo y realice las acciones que conforman la
solución.
En esta unidad temática se abordarán los conceptos básicos relativos a la
creación de programas. En primer lugar se hará una revisión de las etapas más
importantes de la resolución de problemas. Luego, se explicará la forma en que
se ejecutan (prueban) los programas. Como en general los programas no
funcionan correctamente -la primera vez que se ejecutan- será necesario
eliminar los errores, proceso que se denomina depuración de los programas.

Existe una gran cantidad de lenguajes de programación. En esta materia se


abordará uno en particular: el ANIS/ISO C++. Sin embargo, en esta unidad se
verán las características generales que distinguen a unos lenguajes de otros y
las ventajes relativas. Finalmente se propondrán algunos consejos acerca de un
proceso que nunca debe faltar en la programación: la documentación. La
documentación incluye toda la información que se puede suministrar acerca del
programa y que no constituye el código del programa en si mismo.
Se utilizará para los ejercicios un compilador C++, que permitirá afirmar los
conceptos teóricos desarrollados y editar, compilar y ejecutar los primeros
programas.

Revisión de Conceptos
Se estudió en la Unidad 1 el proceso de resolución de problemas
computacionales, donde se distinguen las etapas siguientes.

 Definición del problema.


 Análisis del problema.
 Elección del método
 Codificación.
 Prueba.
 Depuración.
 Documentación.

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 5 3

Las etapas correspondientes a la Codificación, Prueba y Depuración


constituyen el proceso de Programación, que se desarrollará a partir de aquí
en la asignatura.

Diagrama de las Etapas de Resolución de Problemas

Inicio

Definición del
problema

Análisis del
problema

Programación

SI Prueba

Error?

NO

Fin

Nota: En este diagrama no se incluye el proceso de documentación ya que,


como se verá luego, debe realizarse durante todas las etapas de resolución del
problema.

Método Top Down


Diseñar una estrategia, consiste en dividir o descomponer el problema original
en una sucesión de problemas más simples, de tamaño suficientemente
pequeño como para que cada uno de ello pueda ser comprendido en su
totalidad. Esta técnica es conocida como Top-Down o de refinamientos
sucesivos y como se verá más adelante se adapta perfectamente a la
codificación de programas mediante un lenguaje modular y estructurado.

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 5 4

P1 P2 P3 ................. Pn

P3.1 P3.2 P3.3

La estrategia nos define QUE hacer

Algoritmo
En esta etapa se plantea en base a la estrategia, el conjunto de acciones que
permitirán resolver el problema, mediante pseudocódigo, diagrama de flujo, etc.

El algoritmo define COMO hacerlo

Programa

Un algoritmo codificado empleando un lenguaje de


programación interpretable por una computadora
constituye un programa.

Ejecución y prueba del programa


Para poder probar un programa escrito en un lenguaje de programación de Alto
Nivel es necesario generar un código ejecutable. Este proceso puede
efectuarse mediante la COMPILACION o mediante la INTERPRETACIÓN del
código fuente que editó el programador.

Código Ejecutable
El Proceso de Compilación
El proceso de compilación es una traducción del código fuente a un código
ejecutable por la computadora. El resultado de compilar un archivo o programa
fuente es un nuevo archivo llamado imagen ejecutable.

Los archivos ejecutables pueden ser directamente utilizados por el usuario


mediante una simple llamada desde el sistema operativo (por ejemplo un doble
clic en un entorno gráfico tipo Windows). El archivo ejecutable ya no requiere del
compilador ni del entorno que permitió su creación y puede ser utilizado en
cualquier computadora (de plataforma compatible a la admitida por el
compilador).

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 5 5

Programa fuente

COMPILACION

Programa objeto

ENLACE Bibliotecas de
(linking) código objeto

Imagen ejecutable

El Proceso de Interpretación
En este caso el intérprete procesa instrucción por instrucción, sin generar un
código ejecutable completo. Cada vez que el usuarios necesita el ejecutar el
programa deberá llamar al intérprete para que lo ejecute línea por línea.

Ventajas y Desventajas de Compiladores e Intérpretes

Ventajas
Compilación Interpretación
Errores de sintaxis antes de la Ejecución en una sola etapa
ejecución Proceso interactivo de depuración
Velocidad de ejecución
Protección del código.

Desventajas
Compilación Interpretación
Proceso en varias etapas y a menudo Errores de sintaxis detectados
engorroso. (*) durante la ejecución.
Depuración laboriosa Baja velocidad de ejecución.
Código abierto.
(*) NOTA: existen compiladores con entornos de desarrollo integrados (IDE) que
simplifican esta tarea.

Depuración de Programas
Depuración o “debugging“ significa eliminar los errores de un programa. En
ciertos casos esa depuración es sencilla, pero a menudo constituye un proceso
penoso. Esto depende de los tipos de errores de un programa.

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 5 6

Errores de un Programa
i) Errores en Tiempo de Compilación: son aquellos en los que se infringen las
reglas que definen la estructura de las declaraciones y sentencias. Estos errores
son denominados también errores de sintaxis. Los errores de sintaxis más
comunes son: errores tipográficos, falta del punto y coma final y utilización de
variables que no han sido declaradas previamente.
ii) Errores en Tiempo de Ejecución: los programas contiene estos errores
cuando, a pesar de contar con sentencias sintácticamente válidas, se producen
errores al ejecutar estas sentencias. Por ejemplo, un programa podría intentar
utilizar un archivo que no existe en el disco o dividir un número por cero.
iii) Errores de Lógica: en muchos casos el programa arroja resultados
incorrectos a pesar de que no posea errores de sintaxis y tampoco de errores al
ejecutarse. En general se trata de los casos en que el programa no realiza las
tareas que originalmente se solicitaron en la definición del problema. Por
ejemplo, puede que un problema requiera multiplicar dos números; por error, se
diseña un algoritmo que los suma. Al probar el programa, se observaría que no
hay errores de sintaxis, tampoco errores de ejecución y, sin embargo, al darle
dos números al programa devolvería un valor inesperado.

Lenguajes de Programación
Los algoritmos se convierten en programas al ser codificados empleando
lenguajes, cuyas instrucciones pueden ser procesadas por una computadora.
Pero las computadoras procesan los programas de acuerdo al tipo de lenguaje
utilizado.
Existen varias decenas de de lenguajes de programación y a su vez muchas
versiones de cada uno de ellos. En base a la similitud de estos lenguajes de
programación respecto de nuestro lenguaje natural se los puede clasificar en 3
tipos: Lenguajes de Máquina, Lenguajes Ensambladores y Lenguajes de alto
Nivel.

Lenguajes de Máquina
Los lenguajes de Máquina generan programas usando instrucciones que pueden
ser resuletas directamente por el procesador de la computadora sin mediar
trraducciones.
Recuérdese que una computadora es un dispositivo electrónico que solo puede
procesar dos estados de señales eléctricas: encendido y apagado; si se
representan estas señales mediante un modelo matemático binario usando ceros
y unos, es posible representar instrucciones que conformen un programa.
Por ejemplo para sumar dos números se puede escribir:

0110 1001 1010 1011

Este tipo de lenguaje tiene la ventaja de que sus programas pueden ser
ejecutado directamente sin un proceso de traducción previo, lo cual implica una
velocidad del proceso óptima. Como contrapartida, puede observarse que aún
en problemas sencillos, el código es complejo de crear, carece de legibilidad, es
muy complejo de depurar ante la presencia de errores, y tiene total dependencia
del procesador del la computadora.
En respuesta a estos problemas se crearon lenguajes intermedios más cercanos
al nivel del lenguaje natural que usan las personas para comunicarse.

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 5 7

Lenguajes de Bajo Nivel


Estos lenguajes pueden ser interpretados con más facilidad por una persona,
pero la codificación continúa siendo una tarea compleja que requiere de una
gran especialización por parte del programador. El lenguaje típico de bajo nivel
es el ensamblador (Assembler Language), el cual está formado por sentencias
nemotécnicas basadas en abreviaturas del inglés para representar acciones:
ADD, MOV, SUB, DIV, etc. Para sumar dos valores numéricos usando
ensamblador:
ADD X, Y, SUMA
Lo cual se lee: sumar el número almacenado en la posición de memoria X con el
número de la posición Y. El resultado, ubicarlo en la posición de memoria
representada por SUMA.

La elaboración de soluciones a problemas grandes o complejos se hace muy


engorrosa con este lenguaje. Además, está muy ligado al juego de instrucciones
de la marca y modelo de cada microprocesador, lo cual hace que los programas
sean poco portables. Su uso se limita al control de dispositivos electrónicos que
requieren programas pequeños y sencillos, o partes de otros programas de
computadoras.

SI bien su eficiencia es muy alta, un programa en ensamblador requiere de una


traducción a código máquina para que la computadora ejecute sus instrucciones.
El programa escrito en ensamblador es el programa fuente y el generado por la
traducción programa objeto.

Lenguajes de Alto Nivel


Los lenguajes de alto nivel son los más populares entre los programadores, y su
aparición permitió que la ingeniería del software abordar nuevos paradigmas y
modelos, para resolver problemas de mayor complejidad. La formación de
programadores es más rápida y su gran ventaja es la portabilidad: los programas
son independientes del hardware.

Su denominación de alto nivel se debe a que su sintaxis es similar a la forma en


que las personas se comunican y dan órdenes, usualmente en forma imperativa.
Estos lenguajes están conformados por un conjunto de palabras y símbolos que
tienen una relación directa con su significado: while, if, write, else,
class, file, float, string, etc.

Los actuales lenguajes de alto nivel poseen sofisticados entornos de desarrollo


que incluyen un amplio espectro de herramientas para la edición, compilación y
depuración de los programas. La difusión de estos lenguajes, sumado a la
accesibilidad de los productos de hardware a revolucionado la industria del
software en los últimos 15 años.

Como desventajas se debe mencionar el alto requerimiento de recursos de la


computadora (memoria, espacio en disco, etc.) y el mayor tiempo de ejecución.

Existen numerosos lenguajes de alto nivel. Algunos de ellos: Fortran, Cobol,


Basic, Pascal, Modula, C, C++, Java, SmallTalk, Vusal Basic, Visual C++, Delphi
(Object Pascal), C++ Builder, Python, etc.
Se describen sus características salientes y su origen en la lista siguiente

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 5 8

Algunos Lenguajes de Programación


_ 1949: Primer Assembler (ShortCode).
_ 1951: Grace Hooper escribe el primer compilador.
_ 1957: FORTRAN: FORmula TRANslator. El lenguaje dominante en el ámbito
científico. Velocidad de ejecución y tipos de datos de gran precisión. FORTAN
IV, FORTRAN 77, FORTRAN 90, FORTRAN 95, FORTRAN 2000.
_ 1958: LISP (John McCarthy, MIT): Nuevo paradigma de programación.
Diseñado para inteligencia artificial.
_ 1958: ALGOL: ALGOritmic Language. Propuesta de un comité científico
internacional. para uso científico y académico. Primer lenguaje con gramática
formal BNF (Bakcus-Naur Format). Recursividad. ALGOL68.
_ 1959: COBOL: COmmon Business Oriented Language. Lenguaje orientado a
problemas administrativos y contables, donde los formatos tienen suma
importancia y no se requiere gran precisión numérica.
_ 1964: BASIC (John Kemeny, Thomas Kurtz). Lenguaje intérprete de aplicación
general. Muy sencillo de aprender.
_ 1968: PASCAL (Niklaus Wirth, ETH). Paradigma de programación
estructurada. Gran popularidad en ambientes académicos en los ´80 y parte de
los ´90. Propone buenos hábitos de programación, fuertemente tipificado.
Alocación dinámica de memoria. Las versiones de los 90 aceptan el modelo de
objetos. Sucesores de Pascal: MODULA, MODULA-2.
_ 1972: C (Dennis Ritchie, Bell Labs): Sucesor del lenguaje “B” . Estructuras de
control similares a Pascal. Programas simples, rápidos y eficientes. Acepta
aritmética de punteros, alocación dinámica de memoria. No es tan amigable
como otros lenguajes.
_ 1983: C++ (Bjarne Stroustroup ): C con Clases. Extensión de C al modelo de
objetos.
_ 1987: Perl (Larry Wall): Lenguaje de scripts. Poderoso para el tratamiento de
texto y programación en Internet.
_ 1990: Python (G. van Rossum). Lenguaje de script creado para un sistema
distribuido (Univ. Amsterdam). Descendiente de ABC. Posee influencias de C/
C++ y otros lenguajes.
_ 1994: Java (Sun Labs). Lenguaje multiplataforma, compilación intermedia para
bytecode, programación de aplicaciones para Internet.

Clasificación de los Lenguajes de Programación según la


metodología empleada para abordar el diseño del programa:
 Procedimentales: estos se basan en un conjunto de subprogramas o
subrutinas que resuelven diferentes partes del problema. Por ejemplo, para
resolver el problema del cálculo del volumen de un cilindro, se podría tener
un programa principal que pide los datos al usuario y muestra los resultados
y un subprograma que realiza el cálculo.
 Imperativos y Declarativos: en los lenguajes imperativos las líneas del
programa le dicen a la computadora que debe hacer. A lo largo de la

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 5 9

evolución de los lenguajes de alto nivel se ha pasado desde los lenguajes


imperativos hacia los lenguajes declarativos. Lenguajes declarativos son
aquellos en que en las líneas del programa se encuentran las mismas
abstracciones del problema en cuestión. Un buen ejemplo de lenguajes
declarativos son los lenguajes orientados a objetos.

 Orientados a objetos: en este caso, las representaciones que se plasman


en el programa tiene una relación directa con la realidad del problema que
resuelven. Siguiendo el ejemplo anterior (cáclulo el volumen de un cilindro),
nuestro programa contaría con un objeto denominado interfaz de usuario y
otro cilindro. Estos objetos se encargaría de realizar las operaciones de
carga de datos y muestra de resultados (el objeto interfaz de usuario) y de
cálculo del volumen (el objeto cilindro).

 Orientados a eventos: los lenguajes manejados por eventos son aquellos


en los que todas las acciones del programa son invocadas por algún suceso
o evento que actúa de disparador. Este evento puede provenir del usuario
(como apretar un botón del mouse) o del sistema (como el aviso de que hay
espacio insuficiente en el disco). En cualquier caso, el evento es enviados al
programa y este llamará a ejecutar las acciones específicas propuestas para
tal evento.

Esta clasificación no es excluyente. Se pueden encontrar, por ejemplo, lenguajes


orientados a objetos y manejados por eventos. De forma similar, algunos
lenguajes son procedimentales y manejados por eventos. Algunos lenguajes,
en particular, las versiones más recientes del lenguaje Pascal o C++ permiten
programar en base a cualquiera de las clasificaciones anteriores e incluso
combinarlas a todas en un solo programa. Sin embargo es conveniente utilizar
de forma consistente un determinado modelo o metodología para abordar el
problema.

Paradigmas de Programación
Tema elaborado por la cátedra Paradigmas de Programación” de la Fec. Reg. Bs.As. de
UTN. Disponible en http://www.tadp.com.ar/paradigmas/3

Surgimiento de los paradigmas


La historia del desarrollo de los lenguajes de programación muestra una
creciente evolución en la que se van incorporando elementos que permiten ir
creando programas cada vez más sólidos y eficientes y a la vez facilitar la tarea
del programador para su desarrollo, mantenimiento y adaptación.
Sin embargo este proceso está lejos de ser lineal. Ciertas características básicas
incorporadas por algunos lenguajes fueron puestas en duda y fuertemente
criticadas por otros , de manera que se fueron perfilando diferentes teorías y
grupos de lenguajes que postulaban formas disímiles de construir las soluciones.
Así, a medida que fueron avanzando las ciencias de la computación surgen lo
que actualmente definimos como “paradigmas”
Un paradigma de programación es un modelo básico de diseño e
implementación de programas. Un modelo que permite desarrollar programas
conforme a ciertos principios o fundamentos específicos que se aceptan como
válidos. En otras palabras, es una colección de modelos conceptuales que juntos

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 5 10

modelan el proceso de diseño, orientan la forma de pensar y solucionar los


problemas y, por lo tanto, determinan la estructura final de un programa.

Clasificación de los paradigmas


A los paradigmas se los podría clasificar de diversas maneras según los criterios
que se prioricen. Pero partiendo de los principios fundamentales de cada
paradigma en cuanto a las orientaciones sobre la forma para construir las
soluciones, podemos distinguir entre los procedimentales y los declarativos.
• Paradigmas procedimentales u operacionales. Indican el modo de construir la
solución, es decir detallan paso a paso el mecanismo para obtenerla.
• Paradigmas declarativos. Describen las características que debe tener la
solución. Es decir especifican “qué” se desea obtener pero no requieren indicar
“cómo” obtenerla.
Existen también otros paradigmas, que no se pueden encuadrar en esta
clasificación como el heurístico y el concurrente.
Por otra parte, hay autores que hacen otro tipo de enumeraciones o
clasificaciones de paradigmas en base a criterios diferentes, por ejemplo como
de “alto nivel” o “bajo nivel”, o que subclasifican estas categorías en otras más
específicas o acotadas, como por ejemplo “Paradigma orientado a eventos”.

Paradigmas procedimentales
También llamados operacionales, la característica fundamental de estos
paradigmas es la secuencia computacional realizada etapa a etapa para resolver
el problema.
Los programas realizados con lenguajes procedimentales deben incluir en su
codificación las instrucciones de control para determinar el flujo de la ejecución,
como decisiones, iteraciones y otras, conformando, de esta manera, diferentes
“algoritmos”.
Actúan modificando repetidamente la representación de sus datos, basándose
en asignaciones destructivas con efecto de lado. Utilizan un modelo en el que las
variables están estrechamente relacionadas con direcciones de la memoria del
ordenador. Cuando se ejecuta el programa, el contenido de estas direcciones se
actualiza repetidamente, pues las variables reciben múltiples asignaciones, y al
finalizar el trabajo, los valores finales de las variables representan el resultado.
Su mayor dificultad reside en determinar si el valor computado es una solución
correcta del problema, por lo que se han desarrollado multitud de técnicas de
depuración y verificación para probar la corrección de los problemas
desarrollados basándose en este tipo de paradigmas.
En otras palabras, se basan en “cómo” lograr la solución.

Paradigmas declarativos
Los paradigmas declarativos se basan en desarrollar programas especificando o
“declarando” un conjunto de proposiciones, condiciones, restricciones,
afirmaciones, ecuaciones o transformaciones que caracterizan al problema y
describen su solución.
A partir de esta información el sistema utiliza mecanismos internos de control
que evalúan y relacionan adecuadamente dichas especificaciones, de manera de
obtener la solución. No se necesita de la puntualización de los pasos a seguir
para alcanzar una solución, ni instrucciones de control que conformen
algoritmos.
Estos paradigmas permiten utilizar variables para almacenar valores intermedios,
pero no para actualizar estados de información. Si bien sus variables se

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 5 11

relacionan con posiciones de memoria, no existe el concepto asignaciones


destructivas. Las variables son usadas en expresiones, funciones o
procedimientos, se unifican con diferentes valores, pero siempre con
transparencia referencial, es decir, sin efecto de lado.
Como estos paradigmas especifican la solución sin indicar cómo construirla, en
principio, eliminan la necesidad de probar que el valor calculado es el valor
solución.
En otras palabras, se basan en “qué” es necesario especificar.

Principales paradigmas

Paradigmas procedimentales:
 Paradigma Orientado a Objetos
 Paradigma Imperativo

Paradigmas declarativos:
 Paradigma Funcional
 Paradigma Lógico

Otros paradigmas:
 Paradigma Heurístico
 Paradigma Concurrente

Investigue más sobre este tema en el siguiente enlace:


http://www.tadp.com.ar/paradigmas/3

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 5 12

Síntesis
1. Para poder utilizar un programa la computadora debe interpretarlo o
compilarlo previamente.

2. Un compilador convierte el código fuente en una imagen ejecutable (por


ejemplo, un archivo .exe).

3. Los programas compilados son más rápidos de ejecutar que los


interpretados y permiten ser utilizados sin necesidad de distribuir el código
fuente entre los usuarios.

4. Para que un programa funcione correctamente generalmente hay que


corregir sus errores mediante el ”debugging” o depuración.

5. Existen tres tipos de errores: los de tiempo de compilación, los de tiempo de


ejecución y los de lógica.

6. Los lenguajes de programación pueden clasificarse en lenguaje máquina,


de bajo nivel y de alto nivel, dependiendo de la cercanía de su sintaxis con
el lenguaje natural d las personas. Más cerac de la máquina implica menor
nivel, más cerca de los lenguajes humanos, mayor nivel.

7. Un paradigma de programación es un modelo básico de diseño e


implementación de programas, que determina la estructura final de los
mismos.

8. Los paradigmas de programación de spueden clasificar en Paradigmas


procedimentales: indican el modo de construir la solución detallando paso a
paso el mecanismo para obtenerla; .Paradigmas declarativos: describen las
características que debe tener la solución. Es decir especifican “qué” se
desea obtener pero no requieren indicar “cómo” obtenerla; Paradigmas que
heurístico y Paradigma concurrente.

9. Los lenguajes de alto nivel se pueden clasificar según los paradigmas de


programación de soportan: procedimentales, imperativos/declarativos,
orientados a objetos y manejados por eventos. Es posible que algunos
lenguajes combinen estos paradigmas.

10. La documentación es muy importante y debe realizarse durante todo el


proceso de resolución de un problema mediante computadoras. La
documentación debe realizarse tanto en el programa (documentación
interna) como en archivos o impresiones adicionales (documentación
externa).

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 5 13

Actividades

Ejercicios
Ejercicio 5.1
Encienda su computadora e inicie el sistema operativo instalado en su PC.
Ejecute la aplicación Borland C++ Builder (Windows) o Borland Kylix (Linux) y
desde el menú FILE|NEW seleccione la opción Console Wizard para crear una
aplicación independiente de los componentes visuales del entorno gráfico.

Debe aparecer una ventana de edición como la de la figura.

Ejercicio 5.2
i) Escriba en la ventana de edición del programa anterior el código fuente C++
del recuadro siguiente. No escriba los números de línea (solo se indican para
hacer referencias a las sentencias)

1 //G5Ejr2.cpp (Guia 5-Ejercicio 2)


2 pragma hdrstop
3 #include <condefs.h>
4 #include <iomanip.h>
5 #include<conio.h>
6 //-----------------------------------------------
7 #pragma argsused
8
9 int main(int argc, char* argv[])
10 { int i=0,n;
11 float suma=0;
12 float x;
13 cout<<"Cálculo del promedio:"<<endl;
14 cout<<"Cantidad de datos:";
15 cin>>n;

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 5 14

16 while (i<n)
17 { i++;
18 cout<<endl<<"Valor "<<i<<"=";
19 cin>>x;
20 suma=suma+x;
21 }
22 float prom=suma/n;
23 cout<<endl<<endl;
24 cout<<"Promedio="<<prom;
25 getch();
return 0;
26 }

ii) Salve el programa fuente en disco en una carpeta nueva con el nombre
g5ejer2.cpp
iii) Compile y ejecute el programa.
iv) Si tuvo errores de sintaxis trate de interpretarlos y corregirlos, hasta que la
compilación sea exitosa.
v) Analice la lógica el programa e incorpore comentarios en el código que
faciliten su interpretación.
vi) Salga del entorno de C++Builder/Kylix y ubique el archivo ejecutable que
generó la compilación y pruebe ejecutarlo directamente.

Ejercicio 5.3
Modifique las siguientes líneas del programa anterior para producir errores de
sintaxis o simplemente algunos cambios. Interprete los errores y las
modificaciones efectuadas.
i) Quite la palabra float de la línea 12.
ii) Elimine <<endl en la línea 13
iii) Quite la línea 4 completa.

Ejercicio 5.4
Modifique el programa C++ del ejercicio 2 para obtener el promedio de un
conjunto de calificaciones de un grupo de alumnos. Los datos terminan con la
nota 9999. Guarde este programa con el nombre g5ejer4.cpp

Cuestionario
5.1. A partir de considerar los tres tipos de errores descriptos en los párrafos
anteriores y las etapas para la resolución de un problema utilizando la
programación responda la siguiente pregunta:
¿Cuáles son los errores más frecuentes en el diseño de un programa?

5.2. Según la explicación de los párrafos anteriores, se puede afirmar que


existen lenguajes de programación que permiten programar en forma
procedimental y orientada a objetos al mismo tiempo. Con la información que
usted tiene hasta este momento elabore algunas hipótesis acerca de las ventajas
que pueden ofrecer este tipo de lenguaje.

5.3. Establezca relaciones entre el proceso de documentación y los errores de


programación y responda:

Ingeniería Informática – Fundamentos de Programación 2008


Unidad 5 15

a) ¿Será posible que un programa con la documentación interna incorrecta


compile sin errores de sintaxis? ¿Y sin errores de tiempo de ejecución?
b) ¿Cómo respondería las preguntas anteriores si se tratara de la documentación
externa? ¿Para qué se hace una documentación del programa?

5.4. Realice nuevamente el diagrama de las etapas de resolución del problema


incorporando el proceso de documentación.

5.5. En el proceso de compilación luego de generar el programa objeto, se


produce un enlace (linking) con librerías de código creado previamente (ver
página 5). ¿Cómo se le indica al compilador –en el programa del ejercicio 5.2–
cuáles librerías debe enlazar?

5.6. SI UD. está elaborando un programa en su lugar de trabajo, el cual funciona,


pero requiere de algunas modificaciones, y desea continuar con su desarrollo en
su casa, ¿Cuáles archivos copia para continuar el programa: los del programa
fuente, o los del programa ejecutable? Explique.

Recordatorio

Fundamentos de Programación
Régimen de evaluación y promoción 2008
Evaluaciones parciales
Se efectuarán 2 evaluaciones parciales de carácter individual. Para el cálculo del
promedio entre ambas calificaciones, la del 2do parcial se computa doble. Solo se
recupera el 2do Parcial y la nota del recuperatorio sustituye la nota inicial.

Promoción
Promoverán directamente la asignatura sin examen final, aquellos alumnos que
obtengan simultáneamente:
a. Calificación de 75% o más de promedio entre las 2 evaluaciones parciales
(computando doble el 2do parcial)
b. 75% de asistencia a las clases teóricas y prácticas.
Se admite la recuperación del 2do parcial para promover la materia.

Regularidad
Los alumnos que no promuevan directamente la asignatura pero cumplan con las dos
condiciones siguientes, serán considerados alumnos regulares:
a. Promedio de 50% entre los 2 parciales (la nota del 2do parcial vale doble).
b. 75% de asistencia a las clases teóricas y prácticas.

Alumnos Libres
Serán considerados libres quienes no cumplan con las condiciones de regularidad.
Los alumnos libres rendirán el mismo examen final que los alumnos regulares, más
ejercicios y/o preguntas adicionales.

Ingeniería Informática – Fundamentos de Programación 2008

You might also like