Professional Documents
Culture Documents
Autoridades
RECTOR
Arq. Oscar Vicente VALDÉS
VICERRECTOR
Dr. Hugo DOMITROVIC
DECANO
Ing. Eduardo Enrique del VALLE
VICEDECANA
Lic. Lidia Itatí FERRARO de CORONA
SECRETARIA ACADÉMICA
Dra. Aurora Cristina ARMÚA
SECRETARIO DE EXTENSIÓN
Sr. Roberto ENRIQUEZ
DIRECTORA EJECUTIVA
María Paula BUONTEMPO
EQUIPO TÉCNICO
Alicia Raquel BRESSAN Sebastián MACCIÓ
Andrea BRITEZ Susana Gabriela MORENO
Julia CAPLAN Olga MUSIMESSI
Natalia CAPOVILLA Ileana DE LEÓN
Karen CEJAS María José PERSOGLIA
Johanna COCHIA Margarita Cristina ORTIZ
Alejandro FERNANDEZ Luciana RAMÍREZ FARÍAS
Mario GABARDINI María Isabel SÁNCHEZ
María GALDEANO Silvina SÁNCHEZ
Analía GECHEFF Natalia STECHINA
Claudia GONZALEZ Vanesa VIGNOLO
Natalia KLER
4
UNNE-Virtual-Sistema de Educación Virtual de la UNNE
Presentación
Presentación
Este módulo busca acercar al futuro estudiante de Licenciatura en Sistemas de
Información a los temas propios de la disciplina, con un enfoque que destaca la
importancia de la resolución de problemas utilizando computadoras.
Se inicia con la presentación de los conceptos fundamentales de la Informática,
definiciones, alcances y términos propios de la disciplina.
Luego aborda la problemática de la resolución de problemas utilizando
computadoras, se brindan los elementos conceptuales que configuran el contexto
del desarrollo de software y se introduce al alumno en la práctica de una
metodología básica para la construcción de soluciones factibles de ser
implementadas, posteriormente, en una computadora.
Contenidos
Informática: definición, alcances. Información. Carácter y dato. Unidades de
medida de la información. Tratamiento automático de la información. La
computadora: hardware y software. Programas e instrucciones. Aplicaciones de la
informática.
Resolución de problemas con computadoras: ciclo de vida del software.
Algoritmos: concepto, características. Técnicas de escritura de algoritmos. Tipos
de datos. Constantes y variables. Operaciones y funciones. Evaluación de
expresiones. Instrucciones de entrada y salida. Conceptos de programación
estructurada. Estructuras de control: secuencia, selección, repetición.
Objetivos
Que el alumno ingresante a la Licenciatura en Sistemas de Información:
• Comprenda el alcance de la disciplina y el rol del profesional de la
informática en el desarrollo de soluciones tecnológicas basadas en el
razonamiento humano.
• Advierta la importancia de la automatización de la obtención de
información y el aporte estratégico a los fines organizacionales y de
desarrollo.
• Incorpore los términos usuales relacionados con la informática y su
herramienta principal: la computadora.
• Adquiera una visión completa del proceso de desarrollo de software,
partiendo del enunciado del problema, definición de las especificaciones,
diseño del algoritmo, codificación, compilación y prueba.
• Modele soluciones algorítmicas para problemas sencillos, combinando
representaciones de datos y estructuras de control apropiadas.
• Comprenda la importancia de expresar sus soluciones de manera precisa,
ordenada y siguiendo reglas formales.
• Asimile nociones básicas que le permitan una mejor comprensión y
aprovechamiento de las asignaturas específicas del primer año de la
carrera.
• Refuerce su vocación profesional mediante la incorporación temprana de
los conceptos fundamentales de la disciplina y la práctica de actividades
sencillas pero esenciales como la resolución de problemas.
La Informática
Por Informática se entiende al “Conjunto de conocimientos científicos y técnicas
que hacen posible el tratamiento automático y racional de la información por medio
de computadoras”.
Justamente la palabra informática, de origen francés, está formada por la
contracción de los vocablos: INFORmación y autoMÁTICA.
En esta definición se destacan dos términos relevantes:
- Tratamiento automático: Se refiere a que son las propias máquinas (las
computadoras) las que realizan las tareas de captura, proceso y
presentación de la información.
- Tratamiento racional: Se refiere a que todo el proceso está regulado a
través de una secuencia de instrucciones (programa) que siguen el
razonamiento humano.
El objetivo marcado es el tratamiento automático de la información y el medio
utilizado para lograrlo es la computadora.
Por lo tanto, para entender en qué consiste la Informática, es imprescindible
conocer:
- Todas las características técnicas de las computadoras y sus
componentes asociados (periféricos).
- Los distintos tipos de información y datos que se manejarán (sistemas de
representación, archivos y bases de datos).
- Los procesos y métodos aplicados a la información o datos (programas).
- Los sistemas de comunicación que permitirán tratar la información a
distancia y compartirla de forma confiable (redes de comunicación de
datos).
Conocer con detalle estos aspectos y la relación que existe entre ellos, permitirá
entender cómo se realiza el tratamiento automático de la información utilizando
computadoras.
En la definición se hace mención a la utilización de “computadoras”. En realidad, el
término es más amplio y debe entenderse como “sistema informático”, siendo este
un conjunto de recursos destinados al tratamiento de la información.
Información
Como se ha notado, la Informática tiene como objetivo principal proporcionar
información en forma automatizada, por lo tanto es necesario tener claro qué se
entiende por información.
Por una parte, se puede denominar información a la “comunicación o adquisición
de conocimientos que permiten ampliar o precisar los que se poseen sobre una
materia determinada”. Por ejemplo, porcentaje de alumnos que aprobaron la
materia Redes.
Por otra parte, algunos autores denominan información al “conjunto de símbolos
con los que se representan convencionalmente hechos, objetos e ideas”. Este
enfoque es más material y podría llevar a pensar que cualquier conjunto de
símbolos es información aunque no tenga sentido. Por ejemplo, un archivo de
datos de alumnos almacenado en el disco rígido.
En general, la naturaleza de la información se comprende mejor en un escenario
de comunicación, donde se da por supuesto un contexto cognitivo compartido por
un emisor y un receptor, y se transmiten mensajes (informaciones) a través de un
canal que propaga símbolos, de manera tal que se presenta:
- Una petición de conocimiento.
- La satisfacción de la petición de conocimiento (respuesta).
La respuesta proporcionada es la información, esta deberá aportar un
conocimiento desconocido al receptor y serle útil.
Por ejemplo: Dos individuos se encuentran en el pasillo de un edificio y uno le
pregunta a otro: “¿Quién fue?”, y el otro responde: “Juan”.
En este ejemplo se supone que ambas personas comparten el mismo idioma,
condición necesaria para la comunicación. Saber si el mensaje aporta
conocimiento al receptor estará relacionado con el contexto y la forma de la
pregunta, pero lo que no queda del todo claro es: ¿cuál es la información asociada
al mensaje? Algunas alternativas:
- El conocimiento de que fue Juan y no María.
- Que no fue un fenómeno natural el que rompió la ventana.
En evidente que la información asociada a la respuesta puede ser muy diversa y
se precisa de un contexto de comunicación donde emplear el lenguaje como
medio de la comunicación. La condición de utilidad de la respuesta permite
eliminar mensajes que no son del todo satisfactorios, por ejemplo, si la respuesta
del segundo individuo es “un hombre”, posiblemente no satisfaga las expectativas
del primer individuo.
Atendiendo a estas dos formas de concebir la información, desde la Informática,
resulta más pertinente considerar a la información como una realización del
8
Facultad de Ciencias Exactas y Naturales y Agrimensura
Informática
Tratamiento de la información
Tratar información quiere decir operar o procesar un conjunto de datos iniciales o
datos de entrada, y, como resultado de este procesamiento, obtener un conjunto
de datos finales o de salida. El procesamiento de datos está constituido por tres
actividades básicas:
Captura de datos de entrada: Los datos deben ser registrados en la memoria
interna de la computadora antes de procesarse. Pueden ser captados
directamente (por ejemplo, detectando electrónicamente un sonido, una
temperatura, un código de barras) o pueden ser dados en forma de letras o
números (caracteres) ingresados por teclado u otro dispositivo de entrada.
Manipulación de los datos: Sobre los datos de entrada es posible realizar las
siguientes operaciones:
- Agrupamiento: consiste en organizar o clasificar elementos similares por
grupos o clases.
- Cálculo: consiste en la manipulación aritmética y lógica de los datos.
- Clasificación: consiste en el ordenamiento de los datos agrupados según
una secuencia lógica (de mayor a menor, del más antiguo a más reciente).
Manejo de los resultados de salida: Una vez que han sido manipulados los
datos de entrada, sobre ellos se pueden realizar las siguientes operaciones:
- Almacenamiento y recuperación: Con el proceso de almacenamiento se
asegura la conservación de los datos para el futuro. Para realizar
consultas posteriores, se utiliza el proceso de recuperación.
- Comunicación y reproducción: El proceso de comunicación de datos
consiste en la transferencia de los mismos de un lugar a otro, donde serán
utilizados o se procesarán de nuevo. Este proceso continúa hasta que la
información llega al usuario. Cuando la recibe puede necesitar copiar o
duplicar la información (por ejemplo un listado de las ventas del último
mes) y esta tarea de reproducción la realiza una máquina.
10
Facultad de Ciencias Exactas y Naturales y Agrimensura
Informática
La computadora
La Informática trata exclusivamente el procesamiento realizado por una
computadora.
Computador, computadora u ordenador (se consideran términos equivalentes), se
define como una máquina capaz de aceptar unos datos de entrada, efectuar con
ellos operaciones lógicas y aritméticas, y proporcionar la información resultante a
través de un medio de salida; todo ello sin intervención de un operador humano y
bajo el control de un programa de instrucciones previamente almacenado en el
propio computador.
Las operaciones lógicas permiten comparar valores o determinar condiciones de
verdad o falsedad, y las aritméticas son análogas a las usuales en matemática
(suma, multiplicación, etc.).
La diferencia fundamental de la computadora con otras máquinas que realizan un
tratamiento automático de la información (como las calculadoras) se encuentra en
la propia definición: el proceso lo controla el programa y no un operador humano.
Existen otras diferencias adicionales:
- Puede realizar las seis operaciones elementales de tratamiento de la
información.
- Gran velocidad de tratamiento de la información.
- Gran potencia de cálculo aritmético y lógico.
- Puede guardar programas y datos necesarios para la resolución de
cualquier problema.
- Puede comunicarse con las personas y con otras máquinas para recibir y
emitir datos.
Programas e instrucciones
Una instrucción es un conjunto de símbolos que representa una orden de
operación o tratamiento para la computadora. En general, estas operaciones se
realizan con datos.
Un programa es un conjunto ordenado de instrucciones que se dan a la
computadora indicándole las operaciones o tareas que se desea que realice.
Las instrucciones se forman con elementos o símbolos tomados de un
determinado repertorio, el “juego de instrucciones” de una CPU particular, y se
construyen siguiendo unas reglas precisas.
Los programas son formulaciones concretas de algoritmos abstractos (soluciones
expresadas en términos generales), que utilizan representaciones de datos e
instrucciones específicas de la plataforma en la que van a ser implementados.
Todo lo relativo a los símbolos y reglas para escribir programas se denomina
lenguaje de programación.
Ejemplos de programas son aquellos que permiten emitir un cheque de pago para
los empleados de una empresa, operar las funciones de un cajero automático,
emitir resúmenes de tarjetas de crédito, realizar el cálculo de la trayectoria de un
misil, obtener un pronóstico del tiempo, etc.
Hardware y software
En general, en una computadora o en un sistema informático, se encuentran dos
partes fundamentales que interactúan entre sí:
El elemento físico o hardware: Es el conjunto de elementos materiales:
computadoras, impresoras, periféricos, redes de comunicación, etc.
12
Facultad de Ciencias Exactas y Naturales y Agrimensura
Informática
Aplicaciones de la Informática
Uno de los agentes más importantes de la sociedad actual es la información, de
ahí el gran interés de la Informática, que tiene por objeto el “tratamiento
automático de la información”. Hay pocas actividades humanas en que la
Informática no tenga incidencia, de forma directa o indirecta.
Las computadoras resultan útiles para aplicaciones que reúnan una o varias de las
siguientes características:
- Gran volumen de datos. Las computadoras son particularmente
apropiadas para procesar grandes cantidades de datos.
- Datos comunes. Las bases de datos posibilitan que los datos de una
computadora puedan utilizarse en múltiples aplicaciones, sin necesidad de
replicarlos físicamente.
- Repetitividad. Una de las características más relevantes de las
computadoras (y sus lenguajes de programación) es procesar ciclos de
instrucciones iterativamente. Una vez programadas las instrucciones que
constituyen el ciclo y la cantidad de iteraciones, la computadora las
ejecutará sin importar lo elevado de dicho número.
- Distribución. El origen y el destino de la información no necesitan estar
ubicados en una sola computadora central. La información puede
introducirse (y obtenerse como resultado) a través de terminales
distribuidos por áreas geográficas muy extensas (desde distintas oficinas
de una empresa hasta estaciones repartidas por todo el mundo).
Una computadora puede realizar todas sus operaciones con una precisión
controlada, obteniendo resultados consistentes con la precisión de los datos
introducidos.
Las posibles aplicaciones de la Informática se agrupan en:
Procesamiento de datos administrativos:
- Contabilidad, stock, facturación, gestión de personal, control de
producción y de productividad.
- Planificación y control de proyectos, programación lineal, programación
por camino crítico.
- Modelos financieros y predicción (de bolsa, por ejemplo)
- Gestión bancaria, gestión bibliotecaria.
- Seguros, sistemas de reserva y expedición de pasajes.
- Paquetes integrados de Oficina Electrónica u ofimática (procesadores de
texto, hoja electrónica de cálculo, gestión de bases de datos, etc.)
Ciencias físicas e ingeniería:
- Resolución de ecuaciones y de problemas matemáticos.
- Análisis de datos experimentales utilizando técnicas estadísticas.
- Realización de tablas matemáticas.
Ciencias de la vida y médicas:
- Investigación médica, biológica y farmacéutica.
- Ayuda al diagnóstico (sistemas expertos para diagnóstico médico).
14
Facultad de Ciencias Exactas y Naturales y Agrimensura
Informática
Para resolver problemas los programas operan con datos. Los datos representan
objetos del mundo real que permiten modelar aspectos de un problema que se
desea resolver. Por ejemplo, un sistema de administración de alumnos de una
universidad automatiza los procesos de ingreso y seguimiento de las actividades
académicas de los alumnos, tales como inscripción, cursado, exámenes, etc.,
¿qué datos representarán a las entidades que intervienen en estos procesos: el
alumno, la carrera, las materias, etc.?
Los datos reales son difíciles de representar en una computadora, dado que es
una máquina digital binaria con capacidad de operar solo unos y ceros. Por lo
tanto, la representación de los datos, aun los más simples, como los números, las
letras, un nombre o un color, requiere una transformación desde el mundo real a
alguna forma de representación binaria que pueda ser interpretada por la
computadora.
Datos más complejos como una imagen, una canción o la trayectoria de un misil,
también son representados en forma binaria. Sin embargo, la forma de modelarlo
e interpretarlo requerirá de un análisis cuidadoso por parte de quien escribe el
programa.
Por lo tanto, las dos cuestiones más importantes que debe enfrentar quien debe
escribir un programa para resolver un problema mediante una computadora son:
- Definir el conjunto de instrucciones cuya ejecución ordenada conduce a la
solución.
- Elegir la representación adecuada de los datos del problema.
16
Facultad de Ciencias Exactas y Naturales y Agrimensura
Informática
Codificación de un programa
Codificación es la escritura en un lenguaje de programación de la representación
de un algoritmo desarrollado en las etapas precedentes. Dado que el algoritmo es
independiente del lenguaje de programación que será utilizado para su
implementación, el código se puede escribir con igual facilidad en un lenguaje u
otro.
Para realizar la conversión de un algoritmo en un programa, las operaciones
indicadas en el algoritmo se expresan en el lenguaje de programación
correspondiente, respetando sus reglas y sintaxis. Esta operación se realiza con
un programa editor propio del lenguaje de programación o un editor de texto de
uso general. Como resultado se obtiene un archivo que se almacena en la
computadora y se conoce como programa fuente.
El objetivo del programador debe ser escribir programas sencillos y claros, que
sean fáciles de actualizar, ya sea por quien los escribió o por otros programadores.
Documentación y mantenimiento
La documentación de un programa consiste en la descripción de los distintos
pasos 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 o externa. La interna es la
contenida en los comentarios del programa fuente, que son explicaciones
intercaladas con el código para ayudar a comprender pasos específicos. Se
identifican con una sintaxis específica para que el compilador las ignore, es decir,
18
Facultad de Ciencias Exactas y Naturales y Agrimensura
Informática
para que entienda que no es una instrucción que debe ejecutar. Esta sintaxis
depende del lenguaje de programación utilizado (generalmente es un símbolo
especial al inicio del comentario).
La externa incluye análisis, diagramas de flujo y/o pseudocódigos, y manuales del
usuario con instrucciones para ejecutar el programa y para interpretar los
resultados.
La documentación es especialmente importante cuando deben introducirse
cambios en los programas. Después de cada cambio la documentación debe ser
actualizada.
4. Salida. Un algoritmo tiene una o más salidas, esto es, cantidades que
tienen una relación específica con las entradas.
5. Efectividad. También se espera que un algoritmo sea efectivo. Esto
significa que todas las operaciones a realizarse en el algoritmo deben ser
suficientemente básicas para que puedan, en principio, llevarse a cabo
exactamente y en un tiempo finito por un hombre usando lápiz y papel.
Ejemplo de algoritmo
Se requiere calcular la media de tres números que ingresan por teclado.
Los pasos del algoritmo son:
1. Ingresar primer número
2. Ingresar segundo número
3. Ingresar tercer número
4. Sumar los tres números
5. Dividir el resultado obtenido en el paso anterior por 3
6. Mostrar el cociente obtenido
La definición de un algoritmo debe describir tres partes: Entrada, Proceso y Salida.
La información proporcionada al algoritmo constituye su entrada y la información
producida por el algoritmo constituye su salida.
En el algoritmo del ejemplo citado anteriormente se tendrá:
Entrada: los números.
Proceso: suma de todos los números y división del resultado por tres
Salida: media de los tres números ingresados
Escritura de algoritmos
Una computadora solo es capaz de resolver un problema si se le indica paso a
paso las acciones que debe realizar. Estos pasos sucesivos constituyen, como ya
se vio, el algoritmo.
Escribir un algoritmo consiste en realizar una descripción del método o conjunto de
reglas que se propone para resolver un problema. Estas reglas tienen las
siguientes propiedades:
- Debe seguirse una secuencia definida de pasos hasta que se obtenga el
resultado.
- Sólo puede ejecutarse una operación a la vez.
Además, en todo algoritmo los datos manipulados son de importancia
fundamental: se busca obtener una determinada información a partir de datos
básicos del problema, por lo que no es de extrañar que en la escritura de
algoritmos adquieran una identidad propia. Como generalmente se querrá aplicar
el mismo algoritmo a conjuntos de datos de entrada diferentes, estos datos se
identifican en cada paso con un nombre, que será reemplazado en tiempo de
ejecución por los datos particulares que sea necesario tratar (por ejemplo, por los
datos ingresados a través del teclado u obtenidos de un archivo). En el ejemplo del
cálculo de la media, visto anteriormente, los números de entrada se identificarán
con las variables n1, n2, n3, o cualquier nombre que se desee.
El hecho de que un algoritmo deba especificar un conjunto finito y ordenado de
pasos a seguir, no es contradictorio con la posibilidad de realizar algunas de las
operaciones solo bajo ciertas condiciones (por ejemplo, calcular el recargo de una
factura solo si está vencida), indicar la repetición de algunas de las instrucciones
un número de veces conocido de antemano (por ejemplo 10 veces) o aun un
20
Facultad de Ciencias Exactas y Naturales y Agrimensura
Informática
− b + b 2 − 4ac − b − b 2 − 4ac
x1 = x2 =
2a 2a
En este caso los datos de entrada son los coeficientes a, b y c, y los resultados
son los valores de x1 y x2 que se obtienen aplicando las operaciones indicadas en
la fórmula.
Como se puede notar, las fórmulas son especialmente útiles cuando los pasos a
seguir se pueden expresar como operaciones aritméticas y funciones matemáticas.
Otra manera de representar un algoritmo es con diagramas de flujo. Constituyen
un recurso gráfico, que facilita especialmente la visualización de alteraciones en el
flujo de control, pues utilizan flechas para indicar qué instrucción se debe ejecutar
a continuación.
Utiliza distintos símbolos que determinan la forma de interpretar el contenido de
los mismos: como instrucciones a ejecutar, como condiciones para determinar el
siguiente paso del algoritmo, como datos de entrada a obtener, como resultados a
emitir, etc.
Ejemplo:
El diagrama de flujo que representa el algoritmo para calcular la media aritmética
de tres valores numéricos es el siguiente:
Literales y variables
Cuando en un algoritmo o programa se utiliza un valor fijo para realizar cálculos u
operaciones, este dato se conoce como constante o literal (*). Como todo dato,
ocupa un espacio y tiene un tipo:
3,1415 es un literal de tipo numérico
“El resultado es:” es un literal de tipo cadena, que se distinguirá
usando comillas
VERDADERO es un literal de tipo lógico
FALSO es el otro literal posible de tipo lógico
Utilizar literales es la forma más sencilla de manipular datos en la computadora,
pero también la más limitada: un programa que sólo use literales será más
22
Facultad de Ciencias Exactas y Naturales y Agrimensura
Informática
parecido a una calculadora, pues deberá modificarse el programa cada vez que se
quiera obtener un resultado a partir de datos distintos.
La flexibilidad de un programa radica en la posibilidad de combinar valores
constantes y datos que modifican convenientemente su valor en tiempo de
ejecución, para obtener resultados que varían de acuerdo a los datos de entrada
que recibe el programa.
Los valores que cambian durante la ejecución del programa se llaman variables, y
corresponden a espacios de la memoria principal que se identifican con un nombre
y son de un tipo de dato, y pueden cambiar de contenido si el programador así lo
especifica con las instrucciones adecuadas.
El nombre de una variable es lo que permite utilizar el espacio de memoria
reservado para la misma y el valor que allí se almacena. Los posibles nombres de
las variables dependerán del lenguaje de programación elegido (longitud,
caracteres válidos), pero en general se buscará respetar lo siguiente:
- Debe ser descriptivo de los valores que se le asignarán (esto se conoce
como mnemotécnico). Esto se logra evitando nombres muy cortos (A, X) y
nombres que si bien indican qué guarda la variable no aportan información
sobre su significado en la solución del problema (VALOR, DATO, SUMA).
- No utilizar caracteres especiales (espacio, letras acentuadas, ñ, coma,
punto). En general se recomienda limitarse a letras (a b … z), dígitos (0 1
2 … 9) y guión bajo (_) para separar palabras. Algunos lenguajes
distinguen mayúsculas de minúsculas en los nombres de las variables (por
ejemplo, NOTA no es lo mismo que Nota o nota).
(*) Rigurosamente no son términos equivalentes, pero esto se verá en cursos
posteriores de la carrera.
Declaración de variables
Antes de iniciar cada algoritmo se describirá el conjunto de datos a utilizar, sean
estos de entrada, de salida, o para cálculos intermedios o auxiliares. Habrá
entonces una primera sección donde se asignará un nombre y se indicará el tipo
de cada uno de ellos, y estas condiciones deberán respetarse durante todo el
desarrollo del algoritmo.
VARIABLES
TIPO-1: var-11, …, var-1n
TIPO-2: var-21, …, var2n
…
TIPO-m: var-m1, …, var-mn
siendo var-XX los nombres de las variables y TIPO-X uno de los siguientes:
- REAL para datos numéricos con coma decimal
- ENTERO para datos numéricos que no tengan cifras decimales
- CHAR para dato de tipo carácter
- BOOL para valores lógicos (verdadero / falso)
Por ejemplo:
VARIABLES
REAL: precio_unitario, precio_final
ENTERO: cantidad
declara tres variables numéricas: dos de tipo real y una de tipo entero.
Expresiones
Una expresión es un conjunto de variables (nombres de espacios de memoria) y/o
valores literales que se combinan mediante operaciones aplicables a los tipos de
datos manipulados y determinan un resultado.
La acción de la computadora que consiste en computar las operaciones indicadas
para determinar el resultado de una expresión se conoce como evaluar la
expresión.
Las expresiones se agrupan por el tipo de datos resultante de su evaluación. Por
ejemplo, 3 + 5 * 2 es una expresión de tipo numérico, pues aplica operaciones
numéricas (suma, producto) a literales de tipo numérico (3, 5, 2) y su resultado es
el número 13. Sin embargo 3 < 5 es una expresión lógica, pues si bien opera
literales numéricos, obtiene un resultado lógico al aplicar el operador de
comparación <, dando como resultado el valor VERDADERO.
Si CANTIDAD es una variable de tipo numérico, CANTIDAD / 2 es una expresión
de tipo numérico, y su resultado dependerá del valor que esté almacenado en
CANTIDAD al momento de evaluar la expresión.
El resultado de una expresión estará disponible para utilizar luego en el programa
sólo si se lo guarda en una variable, de la forma indicada en el apartado siguiente.
Asignación
El papel de las variables en un algoritmo es asumir diferentes valores durante su
procesamiento. Para utilizar el valor almacenado en una variable se invoca su
nombre, pero antes de poder utilizarla se le debe asignar un valor correspondiente
a su tipo.
Para guardar o cambiar el valor almacenado en una variable se utilizará el símbolo
=. En este contexto, el símbolo = no tiene el sentido de una igualdad matemática,
sino que es un operador de asignación:
variable = valor
Aquí valor representa un dato literal o el resultado de una expresión. Es importante
el orden al utilizar el operador de asignación: la computadora SIEMPRE guardará
el valor de la derecha en el espacio de la memoria identificado con el nombre que
figura a la izquierda. El tipo de dato valor que aparezca a la derecha del signo =
deberá ser coherente con el tipo de dato declarado para la variable a la que se
asigna. Por ejemplo, si la variable se declaró como numérica solo podrá
asignársele un número, en otro caso se producirá un error al intentar compilar el
programa asociado (o errores inesperados en tiempo de ejecución si el compilador
no restringe tipos de datos en las asignaciones).
24
Facultad de Ciencias Exactas y Naturales y Agrimensura
Informática
Operaciones y funciones
Las expresiones combinan operadores y nombres de funciones para indicar las
manipulaciones que se desean sobre los datos que operan.
Según sea el tipo de datos que manipulan y el resultado obtenido, estos
operadores y funciones se clasifican en:
- Aritméticas: datos numéricos y resultado de tipo numérico
- Relacionales: datos numéricos o carácter y resultado de tipo lógico
- Lógicas: datos lógicos y resultado de tipo lógico
- Carácter: datos de tipo carácter
Pueden combinarse los distintos tipos en una expresión, siempre que los datos
sean compatibles con la operación solicitada.
Por ejemplo: (3 + 4) < 2 es una expresión válida cuyo valor es FALSO, sin
embargo 3 + (4 < 2) no es una expresión válida, pues no se puede sumar el
número 3 al valor lógico FALSO.
Algunos operadores tienen mayor prioridad que otros, es decir que se evalúan
antes. Si se desea cambiar la prioridad en la evaluación de una expresión se
puede utilizar paréntesis. Es similar al uso de paréntesis en matemática:
3 + 5 * 10 da como resultado 53
(3 + 5) * 10 da como resultado 80
Operadores numéricos
OPERADOR OPERACIÓN EJEMPLO y su RESULTADO
- opuesto -4 -4
(operación unitaria) -(-9.0) 9.0
** ^ ↑ potenciación 3 ** 2 9
0,5 ** 2 0,25
* multiplicación 6,2 * 2 12,4
/ división 5,1 / 2 2,55
div división entera 5 div 2 2
mod resto (de la 5 mod 2 1
división entera)
+ suma 10 + 4,9 14,9
- resta 5 – 16 -11
Funciones internas
Las operaciones que se requieren en los programas exigen en muchos casos,
además de las operaciones básicas o primitivas ya mencionadas, operadores
especiales que se denominan funciones internas, incorporadas o estándar. Por
ejemplo, las funciones que calculan la raíz cuadrada (raiz2) o el logaritmo decimal
de un número (log10).
Las funciones reciben los datos a operar como argumentos entre paréntesis. Por
ejemplo sen(3,1415) significa evaluar el seno del ángulo que mide 3,1415 radianes.
26
Facultad de Ciencias Exactas y Naturales y Agrimensura
Informática
Evaluación de expresiones
Cuando se combinan funciones y operadores en las expresiones, se evalúan en el
siguiente orden:
1. se evalúan las expresiones que son argumentos de funciones, si existen
2. se evalúan las funciones
3. se operan los resultados de funciones y otros datos de la expresión, con la
prioridad correspondiente.
Argumentos de funciones:
1. 20 + Y, que da como resultado (considerando Y = 3) 20 + 3 = 23
Funciones:
2. log(23), que da como resultado 1,3617278
Operaciones:
3. 5 * X, que da como resultado (considerando X = 10) 5 * 10 = 50
4. 50 + 1,3617278, que da como resultado 51,3617278
5. 51,3617278 <= 200, que da como resultado VERDADERO
Es decir que el valor de esa expresión es VERDADERO.
Entrada y salida
La instrucción LEER captura datos de un dispositivo de entrada y los almacena en
la o las variables indicadas.
Es posible inicializar una variable (es decir, darle su primer valor luego de
declararla) mediante una operación de lectura en lugar de una asignación. Es
también una operación destructiva.
Por ejemplo:
LEER A, B, C
Si se ingresan por teclado los valores 100, 50 y 30, entonces A=100, B=50, C=30.
Estructuras de control
Como ya se adelantó, para resolver algunos problemas no basta con indicar un
conjunto secuencial de pasos a seguir, sino que a veces es necesario evaluar
condiciones y en consecuencia ejecutar o repetir la ejecución de determinados
pasos.
Esto es posible utilizando estructuras de control, que permiten determinar en
tiempo de ejecución cuál debe ser la siguiente instrucción a ejecutar. Se llaman así
porque proporcionan un mecanismo para pasar el control de la ejecución a otro
punto del algoritmo, que no necesariamente es el que aparece a continuación,
alterando el flujo de control.
Las estructuras básicas que permiten expresar cualquier algoritmo son tres:
secuencial, selectiva y repetitiva. También existen otras derivadas, pero siempre
pueden reducirse a las tres fundamentales.
28
Facultad de Ciencias Exactas y Naturales y Agrimensura
Informática
INSTRUCCION1
INSTRUCCION2
INSTRUCCIONn
Secuencia
Supóngase ahora que está vigente una promoción, de manera tal que si la
comunicación duró más de 10 minutos tiene un descuento del 10% en el precio
final.
En este caso es necesario que un grupo de instrucciones -las que permitirán
calcular y aplicar el descuento- se ejecuten de acuerdo a una condición. Para ello
se utiliza una estructura selectiva:
VARIABLES
REAL: duracion, precio_minuto
REAL: tarifa
INICIO
LEER precio_minuto
LEER duracion
tarifa = precio_minuto * duracion
SI duracion > 10 ENTONCES
// aplicar descuento del 10%
tarifa = tarifa – tarifa * 10 / 100
FIN-SI
ESCRIBIR TARIFA
FIN
CONDICION S INSTRUCCION1
INSTRUCCION2
N
INSTRUCCIONn
Alternativa simple
N CONDICION S
INSTRUCCION1 INSTRUCCION1
INSTRUCCION2 INSTRUCCION2
… …
INSTRUCCIONn INSTRUCCIONn
Alternativa doble
VARIABLES
REAL: duracion, precio_minuto
REAL: tarifa
REAL: descuento
30
Facultad de Ciencias Exactas y Naturales y Agrimensura
Informática
INICIO
LEER precio_minuto
LEER duracion
tarifa = precio_minuto * duracion
SI duracion > 10 ENTONCES
// descuento del 10%
descuento = tarifa_base * 10 / 100
SINO
// no se aplica descuento
descuento = 0
FIN-SI
tarifa = tarifa_base - descuento
ESCRIBIR tarifa
FIN
CONDICION S INSTRUCCION1
INSTRUCCION2
N
INSTRUCCIONn
Iteración o repetición
Así, se deberá instruir al operador para que ingrese el valor real de la duración de
la llamada mientras quiera calcular la tarifa, e ingrese 0 o un número negativo para
finalizar el programa. El precio del minuto se lee una sola vez al iniciar el programa,
pues no varía entre llamadas.
Observe que al final del bloque de instrucciones a repetir aparece:
LEER duracion
que es la instrucción encargada de obtener nuevos datos y permitirá determinar en
qué momento debe detenerse el procesamiento. Sin esta instrucción el problema
no será resuelto, pues calculará indefinidamente la tarifa de la primera llamada
ingresada y no evaluará nuevos datos.
32
Facultad de Ciencias Exactas y Naturales y Agrimensura
Informática
Secuencia
instrucción-1
instrucción-2
…
instrucción-n
Alternativa simple
SI condición ENTONCES
instrucción-1
…
instrucción-n
FIN-SI
Alternativa doble
SI condición ENTONCES
instrucción-1
…
instrucción-n
SINO
instrucción-1
…
instrucción-n
FIN-SI
Repetición o iteración
MIENTRAS condición HACER
instrucción-1
…
instrucción-n
FIN-MIENTRAS
Donde:
- instrucción-1, instrucción-2, … , instrucción-n representa una o más
asignaciones, operaciones de entrada, operaciones de salida o bloques
correspondientes a estructuras alternativas o repetitivas.
- condición es una expresión lógica, es decir una expresión que puede
evaluarse como verdadera o falsa.
Bibliografía
ACM. Computing Curricula 2005. ACM en:
http://www.acm.org/education/education/curric_vols/CC2005-
March06Final.pdf
Barchini, Graciela y otros. Modelo curricular de la Informática. Revista
Iberoamericana de Educación (ISSN: 1681-5653) n.º 42/3 – 25 de marzo
de 2007 EDITA: Organización de Estados Iberoamericanos para la
Educación, la Ciencia y la Cultura (OEI) en
http://www.rieoei.org/deloslectores/1586Barchini.pdf
Dapozo, Gladys. Introducción a la Informática: apuntes de la cátedra. 2008.
De Giusti, Armando. Algoritmos, datos y programas. Prentice Hall. 2001.
ISBN 987-9460-64-2.
Diccionario de la lengua española. Vigésima segunda edición. Versión en línea:
http://buscon.rae.es/draeI/
Joyanes Aguilar, Luis. Fundamentos de Programación. Algoritmos. Estructuras de
Datos y Objetos. Mc Graw-Hill. 1996. 2003. 3ra. Edición. ISBN 84-481-
3664-0.
Knuth, Donald E. The Art of Computer Programming. Segunda impresión. Addison-
Wesley, 1969.
Llamas Bello, César. Introducción a la Informática. Ed. Thomson. 2004.
Prieto; Lloris; Torres. Introducción a la Informática. McGraw-Hill. 3ra. edición. 2002.
Wirth, Niklaus. Algoritmos y Estructuras de Datos. Prentice Hall. 1987. ISBN 968-
880-113-5.
34
Facultad de Ciencias Exactas y Naturales y Agrimensura
Ejercitación
Ejercitación
1) Señale (5) situaciones cotidianas en las que se obtiene algún tipo de
información mediante un tratamiento automatizado, como por ejemplo la
determinación del precio final de una compra en un supermercado.
2) Mencione (5) ejemplos de información que sea útil o significativa para apoyar
la toma de decisiones obtenida utilizando computadoras, por ejemplo, el
porcentaje de ingresantes a la carrera de Sistemas respecto del total de
alumnos inscriptos en la Facena en el 2009. Indique en cada ejemplo qué
datos se necesitan para obtenerla.
3) Indique el tipo de representación que elegiría para utilizar en una computadora
los siguientes datos:
a) Promedio general obtenido durante el nivel medio
b) Saldo de una cuenta bancaria
c) Domicilio de un cliente
d) Fecha de nacimiento
e) Fotografía de su mascota
f) Teléfono de un compañero de clase
g) Mensaje de voz recibido por una contestadora automática
h) Diploma de finalización de estudios del nivel medio
i) Mensaje de texto enviado a un teléfono celular
j) Ruta a seguir para llegar a un destino
4) Se dispone de un pendrive de 2GB para copiar un video MPG de 345 MB y 20
fotografías en JPG de aproximadamente 2.320 KB cada una. ¿Es suficiente el
espacio disponible en el pendrive?
5) ¿Es posible enviar por correo electrónico un documento de 2.567 KB, si el
límite de la cuenta de correo es de 2 MB para archivos adjuntos?
6) Si cada contacto ocupa 120 bytes en el chip de un teléfono celular, ¿cuántos
contactos podrá almacenar un chip de 64 KB?
7) Un disco rígido dispone de 44.678.234 KB libres y se desea almacenar una
colección de películas que requiere 31,6 GB. ¿Cuántos MB quedarán
disponibles en el disco?
8) Una cámara fotográfica tiene 512MB de memoria, y guarda fotos de
aproximadamente 1.043.300 bytes en calidad baja, 3,1 MB en calidad media y
5.643 KB en calidad alta. ¿Cuántas fotografías de cada tipo de calidad es
posible almacenar?
9) Identifique la operación involucrada en las siguientes actividades de
tratamiento de la información:
a) Activar un recordatorio de una agenda electrónica
b) Calcular el importe de una llamada telefónica
c) Grabar información utilizando el micrófono
d) Descargar fotografías de una cámara digital
e) Determinar la edad de una persona
f) Visualizar los contactos del programa Messenger por estado de conexión
g) Guardar un trabajo práctico desde el procesador de texto
Resolución de problemas
1) Describa entradas, salidas y procedimiento necesario, en términos generales,
para resolver cada una de las situaciones planteadas a continuación.
a) Determinar el precio de un viaje en remís.
b) Obtener el listado de estudiantes que regularizaron una materia.
2) ¿Qué resultado permiten obtener estos algoritmos? ¿Qué tipo de datos
intervienen?
a) VARIABLES
REAL: base, altura
REAL: resultado1, resultado2
INICIO
LEER base, altura
resultado1 = base * altura
resultado2 = 2 * base + 2 * altura
ESCRIBIR resultado1, resultado2
FIN
b) VARIABLES
ENTERO: nacimiento
CARACTER: cumplio
ENTERO: resultado
36
Facultad de Ciencias Exactas y Naturales y Agrimensura
Ejercitación
INICIO
ESCRIBIR “Año de nacimiento: “
LEER nacimiento
ESCRIBIR “¿Cumplió años durante 2009? (s/n)”
LEER cumplio
SI cumplio == “s” ENTONCES
resultado = 2009 – nacimiento
SINO
resultado = 2009 – nacimiento – 1
FIN-SI
ESCRIBIR resultado
FIN
c)
INICIO
iva = 0,21
total = 0
¿hay más N
resultado =
productos? total + total * iva
S
producto,
producto
LEER resultado
cantidad
precio
3) En los algoritmos del punto anterior, los nombres de las variables hacen
referencia al tipo de dato que contienen, pero no indican el significado del
mismo en el problema a resolver. Modifique los nombres para que resulten
mnemotécnicos.
4) Indique el tipo de dato y el resultado que se obtiene al evaluar cada una de las
siguientes expresiones.
a) –(3.5 * 9 + 2)
b) ln(10 * abs(-3.3)) < 2.1
c) (8 + 5 * 3) mod 3
d) trunc( (-5 * 2.3 + 2.8) / (7 + 3.1) )
e) –(3.5 * 9 + 2) <= (8 + 5 * 3) mod 3
f) raiz2( abs(5 * -3.4) ) > 2 Y 5 * -3.4 < -10
5) Las siguientes son instrucciones válidas en un algoritmo, ¿a qué tipos de dato
corresponden las variables involucradas en las mismas?
a) intermedio = ln(10 * inicial)
b) premio = tiempo * 0.7 + gasto * 0.3 <= maximo
c) clase = valor mod 3
d) ESCRIBIR mensaje
e) porc = trunc( aprobados / total * 100 )
38
Facultad de Ciencias Exactas y Naturales y Agrimensura
Índice
Índice
Presentación 5
La Informática 7
Información 8
La computadora 12
Aplicaciones de la Informática 13
Resolución de problemas con computadoras 15
Etapas en la resolución de problemas: el ciclo de vida del software 16
Algoritmos: concepto y características 19
Escritura de algoritmos 20
Bibliografía 34
Ejercitación 35