28
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

info1 notas de clase 1sorribas/info1_notas_de_clase_1.pdf · Facultad de Ciencias Exactas, ... o Mostrar los conceptos básicos de la programación ... • Fundamentos de programación:

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.