Upload
hoangmien
View
213
Download
0
Embed Size (px)
Citation preview
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 1 de 28
INFORMATICA Objetivos
o Enseñar una metodología para resolver problemas mediante una computadora. o Describir un problema a través de estructuras lógicas. o Mostrar los conceptos básicos de la programación estructurada
Bibliografía
• Fundamentos de programación: algoritmos y estructuras de datos, Luis Joyanes Aguilar, Mc Graw Hill 2003
• El Lenguaje de Programación C, B Kernighan D Ritchie, Prentice Hall 1991 • Elementos esenciales para programación: Algoritmos y Estructuras de Datos
Autores FCEIA: Gagliano, Alarcón, Angelone, Guspi, Luna Disponible en http://www.latinproject.org/index.php/es/biblioteca
Unidades (Plan 2014)
1. Fundamentos de la informática. Conceptos básicos 2. Tipos de datos, operaciones y expresiones 3. Resolución de problemas algorítmicos 4. Estructuras de los algoritmos. Estructuras de control 5. Subalgoritmos: procedimientos y funciones 6. Arreglos 7. Registros y archivos
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 2 de 28
Informática
La Informática nace bajo la idea de ayudar al hombre en aquellos cálculos rutinarios, donde frecuentemente existe una repetición de tareas, como por ejemplo la gestión de un censo, tal es el caso del primero automatizado en 1890 en EE.UU. usando tarjetas perforadas. En esa época se pensó que una máquina no sufriría cansancio ni cometería errores. Con el tiempo esta idea se fue afianzando en la sociedad, y es hoy día que se sigue trabajando para mejorar las prestaciones de los sistemas de cómputo. El término Informática nace recién en la década de 1960 en Francia bajo la denominación INFORMATIQUE, debida a la contracción de las palabras INFORmation y autoMATIQUE, es decir el tratamiento de la información por medios automáticos. INFORMÁTICA es la ciencia que estudia el tratamiento automático y racional de la información. Se habla de tratamiento automático debido a que son máquinas las que procesan la información y se dice racional por estar los procesos definidos a través de programas que siguen el razonamiento humano.
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 3 de 28
Conceptos básicos
Del mundo real a la solución por computadora
Problema del mundo real
Modelo
Algoritmo
Programa
Abstracción
Análisis & descomposición
Codificación de algoritmos
Especificación del problema
Lenguaje de programación
Acciones para resolver el problema
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 4 de 28
Conceptos básicos
Definiciones
Especificación: se denomina al proceso por el cual se analiza y determina en forma clara y concreta el objetivo que se desea.
Modelo: es la representación de un problema del mundo real, tratando de encontrar los aspectos principales que se pueden resolver (requerimientos), descartando aspectos secundarios, los datos que se han de procesar y el contexto del problema.
Algoritmo: es el conjunto de acciones que seguidas paso a paso resuelvan el problema
Lenguaje de programación:
es el conjunto de instrucciones permitidas y definidas por sus reglas sintácticas y su valor semántico, para poder expresar la solución a un problema
Programa: es un conjunto de instrucciones ejecutables sobre una computadora, que permite cumplir una función específica.
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 5 de 28
Conceptos básicos
Algoritmos
Un algoritmo es una forma de describir la solución de un problema, explicando paso a paso como se debe proceder para llegar a una respuesta encuadrada a los datos disponibles, en un número finito de pasos.
Un algoritmo es un conjunto finito y ordenado de reglas o instrucciones (también llamadas acciones) bien definidas tal que siguiéndolas paso a paso se obtiene la respuesta a un problema dado.
Las características de un algoritmo son: 1) Un algoritmo debe ser preciso, es decir, debe indicar claramente (sin ambigüedades) cada uno de los pasos a seguir para conseguir el objetivo propuesto.
2) Un algoritmo debe estar exacto, es decir, que si se sigue el algoritmo varias veces con el mismo juego de datos, los resultados obtenidos deben ser los mismos.
3) Un algoritmo debe ser finito, debe concluir en algún momento.
Entrada
Proceso
Salida
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 6 de 28
Conceptos básicos
Ejemplo de un Algoritmo Se desea realizar un algoritmo para calcular el área y el perímetro de un círculo en función de su radio.
Entrada: radio del círculo (datos) Proceso: cálculo del área y de la longitud de la circunferencia Salida: valor de la superficie y perímetro (resultados)
Un algoritmo escrito en forma coloquial será:
Informar a la computadora (Leer) el valor del radio Calcular el área como pi * radio2 Calcular el perímetro como 2 * pi * radio Informar al usuario (Escribir) el valor del área Informar al usuario (Escribir) el valor del perímetro
El algoritmo expresado en forma coloquial no puede ser entendido por la computadora
Algoritmo escrito aplicando determinadas reglas ���� Algoritmo escrito en ‘seudocódigo’
Algoritmo escrito con un lenguaje de programación formal ���� Programa
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 7 de 28
Conceptos básicos
Modelo computacional
• Objetivo generar algoritmos computacionales
• Como comunicarnos?, como transferir los datos ?
ENTRADA
⇒⇒⇒⇒
PROCESO
⇒⇒⇒⇒
SALIDA
Como ingreso los datos ?
teclado, mouse, lapíz óptico, scanner, ......
Microprocesador. Necesidad de MEMORIA.
Mostrar los resultados. Impresora, monitor, ....
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 8 de 28
Conceptos básicos
Entrada: conjunto de datos que son necesarios para que el algoritmo lleve a cabo su tarea.
Proceso: contiene la descripción de los pasos a seguir para resolver el problema.
Salida: conjunto de resultados que se obtienen al ejecutar el proceso en función de los datos de entrada.
Nuestro procesador: la computadora
• su tarea es procesar información • tratamiento de la información en forma automática • sólo puede realizar acciones elementales, tales como
− operaciones básicas +, -, /, * − operaciones relacionales <, >, <=, >= − almacenar información
El procesador realiza su trabajo utilizando siempre la memoria.
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 9 de 28
Conceptos básicos
Números
- sistema binario (conveniencia y simplicidad)
- el sistema binario al igual que el decimal es un sistema posicional
Decimal Binario
0 0 1 1 2 10 3 11 4 100 5 101 6 110 7 111
Texto
- está representado por un código numérico. Cada caracter (letras mayúsculas y minúsculas, signos de puntuación signos especiales como #, @, & etc.) tienen asociado un valor numérico.
- Estos valores numéricos son arbitrarios
- Código ASCII (American Standard Code for Information Interchange)
- Algunos de los códigos más comunes son: Caracter Codigo Caracter Codigo Caracter Codigo . 46 A 65 \ 92 / 47 B 66 ] 93 0 48 C 67 ^ 94 1 49 D 68 _ 95 2 50 E 69 ` 96 3 51 F 70 a 97 4 52 G 71 b 98 5 53 H 72 c 99 … … … … … …
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 10 de 28
Conceptos básicos
Un dígito binario se denomina bit (contracción de binary digit). El conjunto de 8 bits que se denomina byte. Es interesante saber cuál es el mayor valor número que se puede representar con un cierto número de bits. Puesto que con un bit se puede representar dos posibilidades, con 2 bits tendremos 4 posibilidades (2x2) y en general tendremos 2N, véase la Tabla siguiente:
Bits Posibilidades 1 21=2 2 22=4 3 23=8 4 24=16 5 25=32 6 26=64 7 27=128
8 (1 byte) 28=256 ... …
2 byte 216=65536 4 byte 232=4294967296 8byte 264=18446744073709551616
Múltiplos: Kilobyte, MegaByte, Gigabyte, etc.
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 11 de 28
Tipos de datos
Un tipo de datos está determinado por un conjunto de valores ordenados y por las operaciones permitidas
sobre esos valores.
Atributos de los tipos de datos: 1) Rango de definición
2) Operaciones realizables sobre el tipo
3) Representación interna
Tipos primitivos de
datos
Numéricos No numéricos
Carácter Lógico Enteros Reales
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 12 de 28
Tipos de datos Tipos entero Memoria usada en Bits Valor mínimo Valor máximo
8 -128 +127 16 -32768 +32767 32 - 2147483648 +2147483647 64 ~ - 9.22 1018 ~ + 9.22 1018
Tipos real Memoria usada en Bits Valor mínimo Valor máximo
32 ~ -3.4 1038 ~ +3.4 1038
64 ~ - 1.7 10308 ~ +1.7 10308
Tipo carácter Cógido ASCII (American Standard Code Interchange Information) – 256 símbolos letras: A a la Z (excepto CH, Ñ, LL) y a a la z (excepto ch, ñ, ll)
signos de puntuación: (.) punto, (;) punto y coma, etc. dígitos: 0, 1, 2, .....,9 símbolos especiales: +, -, “, ?, !, =, ..... caracteres de control: retorno, tab, etc.
Tipo lógico Memoria usada en Bits Valores posibles
1 Verdadero / Falso
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 13 de 28
Tipos de datos
TABLA : ASCII
^@ 00 ^X 24 0 48 ^Â 01 ^Y 25 1 49 ^B 02 ^Z 26 2 50 ^C 03 ^[ 27 3 51 ^D 04 ^\ 28 4 52 ^E 05 ^] 29 5 53 ^F 06 ^^ 30 6 54 ^G 07 ^ 31 7 55 ^H 08 32 8 56 ^I 09 ! 33 9 57 ^J 10 “ 34 : 58 ^K 11 # 35 ; 59 ^L 12 $ 36 < 60 ^M 13 % 37 = 61 ^N 14 & 38 > 62 ^O 15 ‘ 39 ? 63 ^P 16 ( 40 @ 64 ^Q 17 ) 41 A 65 ^R 18 * 42 B 66 ^S 19 + 43 C 67 ^T 20 , 44 D 68 ^U 21 - 45 E 69 ^V 22 . 46 F 70 ^W 23 / 47 G 71
H 72 ^ 94 u 116 I 73 _ 95 v 117 J 74 ` 96 w 118 K 75 a 97 x 119 L 76 b 98 y 120 M 77 c 99 z 121 N 78 d 100 { 122 O 79 e 101 | 123 P 80 f 102 } 124 Q 81 g 103 ~ 125 R 82 h 104 delete 126 S 83 I 105 ...... T 84 j 106 ..... U 85 k 107 255 V 86 l 108 W 87 m 109 X 88 n 110 Y 89 o 111 Z 90 p 112 [ 91 r 113 \ 92 s 114 ] 93 t 115
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 14 de 28
Variables y Constantes Como se mencionó anteriormente los programas manejan datos. Es necesario, por lo tanto, disponer de un mecanismo que permita el almacenamiento y la manipulación de los datos. En un programa esto es llevado a cabo por entidades a las que denominaremos variables y constantes. Variables: es un objeto de la memoria cuyo valor puede cambiar durante el desarrollo del algoritmo o ejecución del programa. Una variable es un nombre que asignamos para una posición/es de memoria usada/s para almacenar un valor de un cierto tipo de dato. Las variables deben declararse (definirse) antes de usarse. Cuando se declara una variable estamos reservando una porción de memoria principal para el almacenar los correspondientes valores correspondientes al tipo de variable. La declaración de las variables implica el darles un nombre (identificador de la variable). El valor que almacena una variable se puede modificar a lo largo del programa. Nombres válidos (convenciones): - Todo nombre válido debe comenzar con una letra (obligatorio). - Debe estar formado por letras (may. y/o min.) y números
- El nombre debe ser representativo (muy recomendable). Nombres Válidos Nombres Inválidos Radio 1N Area A-B N ¿Area N1 K,1 Cont5 Area Radio
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 15 de 28
Variables y Constantes Atributos que caracterizan a una variable: Nombre Tipo de datos Valor Constantes: similar al concepto de variable pero con la particularidad de que su valor permanece inalterable en curso de la ejecución del algoritmo. Las constantes pueden tener un nombre (siguiendo las mismas convenciones que las variables) o expresarse directamente mediante su valor. Ejemplo: En el cálculo del perímetro de la circunferencia:
2 * pi * radio Variable
Constante con nombre
Constante expresada por su valor
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 16 de 28
Expresiones Una expresión describe un cálculo a efectuar cuyo resultado es un único valor. Las expresiones son combinaciones de constantes, variables, operadores, paréntesis y nombres de funciones. De forma similar a lo que se entiende en notación matemática tradicional. Por ejemplo:
A + B * sin(T) * 10 / 3 Según el tipo de objetos que manipulan las expresiones se clasifican en:
- aritméticas - lógicas - carácter
El resultado de la expresión aritmética es de tipo numérico; el resultado de la expresión lógica es de tipo lógico; el resultado de una expresión carácter es de tipo carácter. Expresión aritmética ���� Resultado: valor numérico Expresión lógica ���� Resultado: valor lógico Expresión caracter ���� Resultado: valor caracter
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 17 de 28
Expresiones aritméticas
- Las expresiones aritméticas son análogas a las fórmulas matemáticas. - Las expresiones aritméticas se definen mediante una combinación de variables numéricas, constantes
numéricas, paréntesis, llamadas a funciones numéricas y operadores aritméticos. - Los operadores aritméticos son:
Operador Significado Tipo de operandos Tipo de resultado
+ Suma Entero / Real Entero / Real
- Resta Entero / Real Entero / Real
* Multiplicación Entero / Real Entero / Real
/ División Entero / Real Entero / Real
^ o ** Potencia Entero / Real Entero / Real Ejemplos: a) 3 + 5 * 8 ** 2
b) 1 / 3 c) 1.0 / 3.0
d) 1.0 / 3
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 18 de 28
Expresiones aritméticas
REGLAS PARA EVALUAR EXPRESIONES ARITMÉTICAS
Las expresiones se evalúan de izquierda a derecha.
Los paréntesis se usan para anidar expresiones y alterar el orden de evaluación. Las operaciones encerradas entre paréntesis se evalúan primero.
Las reglas de precedencia de las expresiones nos dicen el orden en que la computadora evalúa una expresión cuando hay más de un operador. Para expresiones aritméticas se siguen, lógicamente, las reglas de precedencia aritmética. El orden de evaluación de los operadores en cualquier expresión es el siguiente:
1 ^ o ** 2 * / 3 + -
Ejemplos: - A + B * 3 ** 2 - (A + B) * 3 ** 2 - A / B / 2 - M / N * C - A / B * 2 - M / (N * C)
¿ Qué resultados tendrán las expresiones anteriores si A=8, B=3, C=3.0, M=4.0, N=2.0 ?
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 19 de 28
Funciones internas
Las operaciones que se requieren en los algoritmos exigen en numerosas ocasiones, además de las operaciones aritméticas básicas, ya tratadas, un número determinado de operaciones especiales que se denominan FUNCIONES INTERNAS
FUNCIONES NUMÉRICAS INTERNAS Todas las funciones numéricas se utilizan incluyendo su nombre, seguido de los argumentos entre paréntesis y separados por comas, en alguna expresión aritmética. La función se evalúa y el resultado se incluye en dicha expresión aritmética.
Función Descripción Tipo de argunmento Resultado
Abs(x) Valor absoluto Entero o real Igual al arg.
Sin(x) Seno Entero o real Real
Cos(x) Coseno Entero o real Real
Exp(x) Exponencial Entero o real Real
Alog(x) Logaritmo natural Entero o real Real
Alog10(x) Logaritmo base 10 Entero o real Real
Int(x) Parte Entera Real Entero
Nint(x) Redondeo Real Entero
Mod(x,y) Resto de la división Enteros Entero
Sqrt (x) Raiz cuadrado Entero o real Real
Ejemplos:
Expresión Resultado
Raiz(25) 5
Nint(6.6) 7
Nint(3.1) 3
Int(5.6) 5
Int(3.1) 3
Abs(9) 9
Abs(-12) 12
Mod(15,4) 3
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 20 de 28
Expresiones lógicas
El resultado de este tipo de expresiones es siempre VERDADERO o FALSO. Las expresiones lógicas se forman combinando constantes y variables (numéricas, lógicas o carácter) con operadores de relación (<, >, <=, >=, ==, /=), y otras expresiones lógicas con operadores lógicos (NOT, AND, OR) Operadores de relación:
Genérico: Expresión 1 operador Expresión 2
Operador de Relación Significado
< Mayor
> Menor
== Igual
>= Mayor igual
<= Menor igual
/= o <> Distinto
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 21 de 28
Expresiones lógicas Ejemplos: A – 2 < B – 4 si A=4, B=3 ¿Resultado? (2 * X) – 5 /= (3 + 8) * 2 si X=3 ¿Resultado? Para realizar la comparación de datos tipo carácter se requiere una secuencia numérica de ordenación de los caracteres. Para ello recurrimos al código ASCII (American Standard Code for Information Interchange), donde existe un orden de todos los caracteres. Ejemplos: ‘A’ < ‘B’ ( ‘A’ : cód. ASCII 65 / ‘B’ : cód. ASCII 66 ) ‘A’ < ‘a’ ( ‘A’ : cód. ASCII 65 / ‘a’ : cód. ASCII 97 )
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 22 de 28
Expresiones lógicas
Operadores lógicos:
NOT: es un operador unario, es decir que influye sobre una única expresión del tipo lógica.
NOT expresión lógica Expresión 1 V F F V
AND: es la conjunción o multiplicación lógica
expresión lógica 1 AND expresión lógica 2 Expresión 1
Expresión 2
V F
V V F F F F
OR: es la disyunción o suma lógica
expresión lógica 1 OR expresión lógica 2 Expresión 1
Expresión 2
V F
V V V F V F
Ejemplos: 5 < B – 4 .AND. A = 4 si A=4, B=3 ¿Resultado? X – 2 = 1 .OR. (X+3) > 6 si X=3 ¿Resultado? .NOT. Z > 6 si Z=6 ¿Resultado?
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 23 de 28
Acción de Asignación
La operación de asignación es el modo de darle valores a una variable. La operación de asignación se representa con el símbolo ←
variable ← expresión Es decir, se almacena el resultado de una expresión en una variable.
Ejemplo: A 2 + 3
Nombre de la variable
Valor
A A + 1
IMPORTANTE: No confundir igualdad matemática con asignación
A
5
El valor 5 es almacenado en la celda de memoria que corresponde a la dirección de memoria reservada a la variable A
A
6
Se resuelve la expresión A+1 y el resultado se almacena de nuevo en la variable A
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 24 de 28
Asignación aritmética Ejemplo1 AMN 3 + 14 + 8 TER1 1.45 + 8 TER2 0.75 * AMN COCIENTE TER1/TER2
Ejemplo2 A 0 N 1 A N + 1
Asignación lógica Asignación carácter Ejemplo3 M 8 < 5 N M .OR. (7 <= 12) P 7 > 6
Ejemplo4 MAYUS ‘A’ MINUS ‘a’ SIGNO ‘;’
Conversión de tipo: en las asignaciones no se pueden asignar valores a una variable de un tipo diferente del suyo. Se presentará un error si se trata de asignar valores de tipo carácter a una variable numérica o un valor numérico a una variable tipo carácter por ejemplo.
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 25 de 28
Entrada y Salida de información Basándonos en el modelo computacional presentado anteriormente, necesitamos mecanismos (acciones) que nos permitan ingresar los datos a la computadora y otros para mostrar los resultados. Para ello existen dos acciones que denominaremos Leer y Escribir que describiremos a continuación.
Acción Leer El objetivo de una acción Leer es cambiar el valor almacenado en una variable a través de periféricos de entrada (supongamos teclado), se puede pensar también como una asignación externa.
Sintaxis: Leer (lista de variables) La lista de variables es separada por comas. Ejemplos: Leer (A)
Detecta un valor introducido a través del periférico habilitado y posteriormente asigna dicho valor a la variable de nombre A
Leer (Num1, Num2) Si desde teclado se ingresan dos números, el primer número se almacena en la variable Num1, y el segundo en la variable Num2.
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 26 de 28
Acción Escribir El objetivo de una acción Escribir es mostrar los resultados o textos a través de periféricos de salida (supongamos monitor)
Sintaxis: Escribir (“letrero o cartel opcional”,lista de expresiones de salida) Ejemplos: Escribir ( Num1) Muestra el valor de una variable , en este caso de Num1 Escribir ( “Buen día”) Muestra el texto encerrado entre comillas Escribir ( “El resultado es “, Num2) Muestra el texto y el valor de la variable Num2 Escribir (Num1 * Num2 / 34 ) Muestra el resultado de la expresión
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 27 de 28
Estructura de un algoritmo
Los algoritmos tienen dos partes bien definidas: la Parte declarativa, donde se describen los datos que se van a utilizar en el procedimiento de resolución y la Parte de procesos, donde se describen las acciones del algoritmo en sí (la lógica de resolución).
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR Informática
Página 28 de 28
Estructura de un algoritmo Las palabras que están en negrita son palabras reservadas del lenguaje. Las secciones Algoritmo < nombre>, Inicio, < Proceso > y Fin deben estar presentes en todo algoritmo, no así las secciones constante, tipo, variables y <Subalgoritmos> que dependerán de la resolución.