Sie sind auf Seite 1von 11

ndice

1. Introduccin.........................................................................................................2
1.1 Metodologa para la construccin de un programa........................................3
A - Comprensin del problema..........................................................................3
B - Diseo de una estrategia de resolucin.......................................................5
C Desarrollo del algoritmo................................................................................6
D Implementacin del algoritmo....................................................................9
E - Ejecucin del programa y evaluacin de resultados.................................10
Resumen Introduccin:.....................................................................................11

Conceptos bsicos de Programacin


1. Introduccin
La materia Fundamentos de Informtica tiene como objetivo el conocimiento
de los conceptos y las estructuras bsicas utilizadas en la programacin de
computadoras. En el curso veremos todos aquellos contenidos que nos
permitan crear programas en un lenguaje de diagrama de flujo, esto es, un
conjunto de smbolos grficos que permiten la representacin de las
instrucciones. Estos conocimientos nos servirn de base para encarar el
estudio de otros lenguajes de programacin, a la vez de aportarnos esquemas
de razonamiento lgicos aplicables a la resolucin de problemas ms
generales, por lo que podramos definirla tambin como una introduccin a
una metodologa de resolucin de problemas.
Como requisitos previos podramos plantear el conocimiento y operacin de
una PC, esto es el manejo del Sistema Operativo y programas de aplicacin,
as como el conocimiento de los componentes de hardware y software de un
equipo de computacin. En el apunte Hard y Soft bsico podrn encontrar una
breve historia del desarrollo de los sistemas informticos, as como una
descripcin de estos componentes, y de cmo la interaccin entre ellos
permite desarrollar y ejecutar aplicaciones tiles con una computadora.
Ahora bien, el mbito especfico de estudio de nuestro curso es el del
software. Suele definirse el software como el componente lgico de un
equipo, en contraposicin con el componente fsico o hardware, pero si
queremos una definicin ms precisa podramos decir que es el conjunto de
programas, procedimientos, reglas, documentacin y datos asociados que
forman parte de las operaciones de un sistema de computacin.
De manera particular, a nosotros nos interesan los programas, ya que, como
se dijo, el objetivo de nuestro curso es aprender los conceptos y las
estructuras bsicas que permiten la creacin de programas, y su
representacin mediante el uso de un lenguaje de diagrama de flujo. Veamos
entonces algunas definiciones.
Programa: de manera general, un programa puede definirse como una serie
de operaciones ordenadas para llevar a cabo un proyecto o resolver un
problema. El trmino problema debemos entenderlo, en este contexto,
como cualquier situacin que requiera de un anlisis para definirla y
solucionarla. En particular, en un Programa de computadora ese conjunto de
operaciones ser un conjunto ordenado de instrucciones codificadas en un
lenguaje de programacin especfico, que le indican al procesador lo que debe
hacer.
Lenguaje de programacin: los lenguajes de programacin son idiomas
diseados para expresar las acciones que pueden ser llevadas a cabo por las
computadoras. Pueden usarse para crear todo tipo de programas: sistemas
operativos, aplicaciones o juegos. Como todos los idiomas los lenguajes estn
compuestos por un conjunto de smbolos y reglas que definen su estructura y

el significado de sus elementos y expresiones, y su objeto es permitir la


comunicacin entre nosotros y las mquinas.
Se defini a los lenguajes de programacin como idiomas. Todos nosotros
conocemos y usamos el idioma castellano, y eso nos permite comunicarnos
con cualquier otra persona que lo conozca. Podemos entonces situados frente
a un problema establecer el conjunto de operaciones que nos conduzca a su
solucin, e incluso repartirnos las tareas que haya que realizar; si alguno de
los integrantes lidera el grupo, ser ste quien se encargue de dar las
instrucciones. Pero si los integrantes del grupo hablaran idiomas distintos, la
tarea sera prcticamente imposible. Algo parecido nos sucede frente a una
computadora: no tienen (por ahora) la capacidad de entender nuestro idioma
ni de aprenderlo, por lo que fue necesario desarrollar, a partir de lo que ellas
entienden, idiomas que nos permitan indicarles que cosas tiene que hacer.
Las computadoras son mecanismos complejos que slo pueden operar sobre
datos, sin importar las unidades, resolviendo operaciones muy sencillas
(sumas y comparaciones) a una elevadsima velocidad y con gran precisin.
Aprovechando estas caractersticas se han desarrollado programas que se
utilizan en campos cada vez ms amplios de las actividades humanas.
1.1 Metodologa para la construccin de un programa
Los programas son mtodos para resolver problemas. El proceso de
construccin de la solucin a un problema se puede dividir en las siguientes
etapas:
A.
B.
C.
D.

Compresin del problema.


Diseo de una estrategia de resolucin.
Desarrollo del algoritmo (diagrama de lgica).
Implementacin del algoritmo (codificacin y construccin del programa
ejecutable).
E. Ejecucin del programa y evaluacin de resultados.
Describiremos a continuacin a cada una de las etapas mencionadas.
A - Comprensin del problema
No existe ninguna posibilidad de resolver un problema si no se lo comprende
acabadamente. Por esa razn sta es la primera etapa, y en ella debemos
determinar claramente que se debe hacer para solucionar el problema; no
importa todava como resolverlo.
Nuestra tarea deber comenzar analizando profundamente los
requerimientos del problema, familiarizndonos con el enunciado leyndolo
cuidadosamente, resaltando las partes ms importantes y dificultosas de
interpretar.
Si el problema lo permite es conveniente reescribirlo o apoyarse en soluciones
grficas, confeccin de tablas o cualquier otro elemento que facilite la
compresin.

Sea cual sea la complejidad del problema a resolver podemos representarlo


con el siguiente esquema:
Datos de
entrada

???

Resultados
(datos de salida)

En una punta del esquema tenemos los datos de entrada, y en la otra los
resultados. El programa debe procesar los datos de entrada de manera
conveniente como para producir la salida esperada. Nuestra incgnita es
entonces establecer cuales son las relaciones que permitan convertir los datos
de entrada en la informacin resultado. De eso se debe encargar el programa.
Podemos considerar que hemos comprendido el problema cuando podamos
responder las siguientes preguntas:
a) Cules son los datos a contemplar en el problema ?
Cuntos son ? En qu secuencia se presentan ?
b) Cules son los resultados que se deben proporcionar ?
Cuntos son ?
Se debe respetar una secuencia preestablecida ?
Se han establecido unidades ?
c) Qu tipo de relacin, mtodo o proceso se debe establecer con los datos
suministrados para obtener los datos pedidos ?
Es un proceso matemtico o de evaluacin ?
Es un proceso selectivo ? Simple o mltiple ?
Es una combinacin y/o repeticin de ambos ?
Veamos algunos ejemplos simples.
Ejemplo 1
Dados dos nmeros que se ingresan por teclado, calcular e informar la suma
a) Entrada: 2 nmeros
b) Salida: 1 nmero que representa el valor de la suma de los dos valores de
entrada
c) Proceso: operacin matemtica de suma entre los 2 nmeros ingresados
Ejemplo 2
Dados dos valores numricos determinar e informar al mayor de ambos.
a) Entrada: 2 nmeros
b) Salida: 1 nmero; el de mayor valor entre los 2 ingresados.
c) Proceso: una seleccin simple entre dos valores conocidos.

Ejemplo 3
Se ingresan 3 nmeros sin ningn orden y se pide que se los informe en orden
creciente.
a) Datos: 3 nmeros.
b) Resultados: los tres valores ingresados ordenados de manera creciente.
c) Proceso: se debe efectuar ms de una seleccin para ordenarlos, ser una
seleccin mltiple.
Ejemplo 4
Se dan como datos las longitudes de los dos catetos de un tringulo
rectngulo y se debe calcular el rea del tringulo.
a) Datos: 2 nmeros positivos ( las longitudes de los 2 catetos).
b) Resultados: 1 nmero; el rea del tringulo.
c) Proceso: aplicacin de la frmula de clculo de la superficie del tringulo
En este ltimo ejemplo se establecen limitaciones para los datos de entrada:
deben ser positivos. Adems para la resolucin debe conocerse cul es la
frmula para el clculo de la superficie.
B - Diseo de una estrategia de resolucin
Consiste en la elaboracin de un plan general sobre el cual nos basaremos
para luego desarrollar el algoritmo, obteniendo el diagrama de lgica del
problema. En esta etapa definimos como resolveremos el problema, haciendo
abstraccin de los detalles. En lugar de pensar en instrucciones, trataremos de
establecer las tareas o procesos constitutivos del problema.
En general la estrategia se basa en dividir el problema original en las partes
que lo componen, obteniendo un conjunto de problemas ms simples
ordenados en una secuencia especfica. Este criterio puede volver a aplicarse
hasta que los subproblemas en los que dividimos el problema original sean
perfectamente compresibles, esto es, que puedan resolverse en forma
individual.
Una vez resueltos todos los pequeos problemas tendremos resuelto el
problema original. Nuestro esquema inicial podra representarse ahora de la
siguiente manera:

Entrada

Sub. 1
???

S1 E2

Sub. 2
???

S2 E3

Sub. 3
???

Salida

El problema original fue dividido en 3 subproblemas. La salida de Sub. 1 se


convierte en la entrada de Sub. 2; y la salida de Sub. 2 se convierte en la
entrada de Sub. 3.
Veamos un ejemplo
Ejemplo: Determinar la edad promedio de los alumnos del curso
1 - COMPRENSIN DEL PROBLEMA ( qu ?)
a) Datos: edad de cada alumno y cantidad de alumnos.
b) Resultados: edad promedio.
c) Proceso: clculo del promedio.
2 - ESTRATEGIA: ( cmo ?)
a) Obtener la cantidad de alumnos y la edad de cada uno.
b) Calcular el promedio (sumatoria y cociente).
c) Informar la edad promedio.
C Desarrollo del algoritmo
La definicin general de algoritmo es: conjunto finito de operaciones que
ejecutadas en un orden determinado permiten resolver el problema
planteado.
El concepto de algoritmo es aplicable a cualquier proceso, sea este una
operacin matemtica, el armado de un mueble, o el desarrollo de un
programa de computacin. Es similar al de estrategia, con la diferencia que
en lugar de hablar de procesos o tareas, hablaremos de instrucciones, lo
cual involucra un mayor grado de detalle y precisin.
El algoritmo se disea tomando como punto de partida la estrategia definida.
Para llegar al algoritmo se deben satisfacer las siguientes condiciones:

que se hallen perfectamente identificados los datos de entrada, pudiendo


ser varios, uno o ninguno.
que se produzca al menos un resultado.
que cada instruccin utilizada sea clara y precisa, sin ambigedades.
que se halle compuesto por una cantidad finita de instrucciones para
cualquier caso particular de los datos.
que cada instruccin sea lo suficientemente bsica para que pueda ser
resuelta por cualquier computadora.
Ejemplo: Construir un algoritmo que determine e informe si un nmero A es
mltiplo de otro B.

1.
2.
3.
4.
5.
6.

Ingresar el valor de A
Ingresar el valor de B
Obtener el resto del cociente, sin decimales, de A/B
Analizar el resto del cociente
Si el resto es cero informar ES MULTIPLO
Finalizar
El diseo del algoritmo es la etapa ms creativa del desarrollo de un
programa. Si bien las condiciones que debe cumplir son muy estrictas, no
existe una nica forma de resolver un problema: puede que frente a un
problema dado a cada uno de los alumnos del curso se les ocurra una
solucin (algoritmo) distinta. Y si los algoritmos resuelven correctamente el
problema todos estn bien.
Nuestra materia se basa precisamente en el diseo de algoritmos. Y a esta
tarea dedicaremos la mayor parte de nuestro tiempo.
En el ejemplo anterior se represent el algoritmo describiendo cada uno de
los pasos para su solucin, utilizando el lenguaje natural, que es la manera
que utilizamos para comunicarnos entre nosotros. Otra forma de
representarlo sera utilizando un pseudocdigo, esto es, escribir las
instrucciones siguiendo un conjunto de reglas sintcticas poco estrictas, pero
intentando acercar las ideas del algoritmo a las estructuras y sintaxis
parecidas a las de los lenguajes en los que vamos a programar el algoritmo. Y
la otra posibilidad es representar las instrucciones grficamente mediante un
diagrama de flujo, que es lo que haremos en la materia.
Ms adelante veremos detalladamente cada uno de los bloques que
utilizaremos en la construccin de nuestros algoritmos, o diagramas lgicos.
Para empezar veamos una como se representa el algoritmo anterior en un
diagrama de flujo:

resto=a%b

resto= = 0

Es mltiplo

Cada bloque representa

Ingreso de datos

Salida de datos
Operacin

Decisin simple
P

Indicadores de principio y fin del programa

El diagrama nos proporcionar entonces las siguientes ventajas:

permite una sencilla y rpida visualizacin de todo del problema.

es un medio de comunicacin entre quien explica y quien aprende, o


entre los miembros de un equipo.
es un medio claro de documentacin de los problemas.

D Implementacin del algoritmo


Una vez terminado el algoritmo el programa debe ser escrito en un lenguaje
de programacin para que pueda ejecutarse en una computadora.
De manera simplificada podemos decir que para construir un programa que
pueda ser ejecutado por una computadora debemos seguir los siguientes
pasos:
- Codificar el algoritmo en un lenguaje de programacin. Por codificacin
entendemos la traduccin de las instrucciones del diagrama de flujo a
las instrucciones propias del lenguaje. Se obtendr un archivo de texto
que suele denominarse Archivo Fuente.
-

Compilar el archivo fuente. La compilacin es un proceso que realiza el


compilador o el lenguaje que utilizamos, y que convierte el archivo de
texto fuente en un archivo ejecutable, que puede ser copiado y utilizado
en una computadora.

El proceso de compilacin traduce las instrucciones que escribimos en el


archivo de texto en un lenguaje que entendemos, en instrucciones que
entiende la mquina.
Para codificar el algoritmo en un determinado lenguaje, en nuestro caso el
C/C++, debemos conocer su vocabulario (conjunto de smbolos y palabras), y
respetar sus reglas (sintaxis) para generar frases vlidas. Durante el curso
veremos las reglas bsicas del lenguaje C/C++, y una traduccin de ste al
castellano para facilitar la construccin de programas en el laboratorio.
Ejemplo:
Codificacin del algoritmo visto en C/C++
#include<iostream>
int main(){
int a, b, resto;
cin>>a;
cin>>b;
resto=a%b;
if(resto= = 0)
cout<<Es mltiplo;
return 0;
}

Codificacin del algoritmo en seudo cdigo basado en C/C++


# include<seudoc.h>
PRINCIPAL()
INICIO
entero a,b,resto;
ingresar a;
ingresar b;
resto=a%b;
mostrar Es mltiplo;
FIN

E - Ejecucin del programa y evaluacin de resultados


Durante la compilacin, el compilador analiza la sintaxis de las instrucciones;
en caso de que existan errores sern indicados y podremos hacer las
correcciones necesarias.
Luego de esto, podremos ejecutar el programa. Esta accin puede realizarse
desde el entorno de desarrollo que por lo general los lenguajes modernos
disponen, o copiando el archivo ejecutable que obtuvimos en el proceso de
compilacin. En cualquier caso ser necesario probar que el programa
efectivamente haga lo que se pretende.
Una prctica usual es construir un lote de datos de prueba mediante el cual
probar el programa. El lote se prepara con distintas combinaciones de datos,
para los que se conoce el resultado, y si el programa no resuelve
correctamente todos los casos habr que modificarlo.
La modificacin se realiza sobre el programa fuente, se vuelve a compilar y a
probar, hasta que los resultados sean absolutamente confiables.

Resumen Introduccin:
Software: el conjunto de programas, procedimientos, reglas, documentacin
y datos asociados que forman parte de las operaciones de un sistema de
computacin.
Programa de computadora: conjunto ordenado de instrucciones codificadas
en un lenguaje de programacin especfico, que le indican al procesador lo
que debe hacer.
Lenguajes de programacin: idiomas diseados para expresar las acciones
que pueden ser llevadas a cabo por las computadoras. Estn compuestos por
un conjunto de smbolos y reglas que definen su estructura y el significado de
sus elementos y expresiones; su objeto es permitir la comunicacin entre
nosotros y las mquinas.
Lenguaje de diagrama de flujo: un conjunto de smbolos grficos que
permiten la representacin de las instrucciones
Metodologa para la construccin de un programa
A. Compresin del problema: determinar que se debe hacer. Definir:
- Datos de entrada
- Datos o informacin de salida
- Relacin entre datos de entrada y salida.
B. Diseo de una estrategia de resolucin: definicin de un plan general
de trabajo. Determinar como se resolver el problema. Divisin del
problema en las partes que lo constituyen
C. Desarrollo del algoritmo (diagrama de lgica):
Definicin de algoritmo: conjunto finito de operaciones que ejecutadas en
un orden determinado permiten resolver el problema planteado.
Para desarrollar el algoritmo solucin se detallan cada una de las
instrucciones, a partir de lo definido en la estrategia. Puede hacerse
mediante el lenguaje natural, pseudocdigo o diagrama de flujo
D. Implementacin del algoritmo: traduccin de las instrucciones del
diagrama de flujo a las instrucciones propias de un lenguaje de
programacin. Luego mediante la compilacin se construye el archivo
ejecutable que se utilizar en cualquier computadora.
E. Ejecucin del programa y evaluacin de resultados: construccin de un
lote de datos de prueba para analizar el funcionamiento del programa. El
lote se prepara con distintas combinaciones de datos, para los que se
conoce el resultado, y si el programa no resuelve correctamente todos los
casos habr que modificarlo.

Das könnte Ihnen auch gefallen