Informática

advertisement
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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
Página 1 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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.
Página 2 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
Conceptos básicos
Del mundo real a la solución por computadora
Problema del mundo
real
Abstracción
Modelo
Especificación del
problema
Análisis &
descomposición
Programa
Codificación de
algoritmos
Algoritmo
Acciones para
resolver el problema
Lenguaje de
programación
Página 3 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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.
Página 4 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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
Página 5 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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:
Proceso:
Salida:
radio del círculo (datos)
cálculo del área y de la longitud de la circunferencia
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
Página 6 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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, ....
Página 7 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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.
Página 8 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
Conceptos básicos
Números
Texto
- sistema binario (conveniencia y simplicidad)
- el sistema binario al igual que el decimal es un
sistema posicional
Decimal
0
1
2
3
4
5
6
7
Binario
0
1
10
11
100
101
110
111
- 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
.
/
0
1
2
3
4
5
…
46
47
48
49
50
51
52
53
…
A
B
C
D
E
F
G
H
…
65
66
67
68
69
70
71
72
…
\
]
^
_
`
a
b
c
…
92
93
94
95
96
97
98
99
…
Página 9 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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
1
2
3
4
5
6
7
8 (1 byte)
...
2 byte
4 byte
8byte
Posibilidades
21=2
22=4
23=8
24=16
25=32
26=64
27=128
28=256
…
16
2 =65536
32
2 =4294967296
64
2 =18446744073709551616
Múltiplos: Kilobyte, MegaByte, Gigabyte, etc.
Página 10 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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
Enteros
No numéricos
Reales
Carácter
Lógico
Página 11 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
Tipos de datos
Tipos entero
Memoria usada en Bits
8
16
32
64
Valor mínimo
-128
-32768
- 2147483648
~ - 9.22 1018
Valor máximo
+127
+32767
+2147483647
~ + 9.22 1018
Tipos real
Memoria usada en Bits
32
64
Valor mínimo
~ -3.4 1038
~ - 1.7 10308
Valor máximo
~ +3.4 1038
~ +1.7 10308
Tipo carácter
Tipo lógico
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.
Memoria usada en Bits
1
Valores posibles
Verdadero / Falso
Página 12 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
Tipos de datos
TABLA : ASCII
^@
^Â
^B
^C
^D
^E
^F
^G
^H
^I
^J
^K
^L
^M
^N
^O
^P
^Q
^R
^S
^T
^U
^V
^W
00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
^X
^Y
^Z
^[
^\
^]
^^
^
!
“
#
$
%
&
‘
(
)
*
+
,
.
/
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
^
_
`
a
b
c
d
e
f
g
h
I
j
k
l
m
n
o
p
r
s
t
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
u
v
w
x
y
z
{
|
}
~
delete
116
117
118
119
120
121
122
123
124
125
126
......
.....
255
Página 13 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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
Página 14 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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
Constante expresada
por su valor
Constante con
nombre
Variable
Página 15 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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
Expresión lógica
Expresión caracter
Resultado: valor numérico
Resultado: valor lógico
Resultado: valor caracter
Página 16 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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)
b)
c)
d)
3 + 5 * 8 ** 2
1/3
1.0 / 3.0
1.0 / 3
Página 17 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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
2
3
Ejemplos:
- A + B * 3 ** 2
-A/B/2
-A/B*2
^ o **
*/
+ - (A + B) * 3 ** 2
-M/N*C
- M / (N * C)
¿ Qué resultados tendrán las expresiones anteriores si A=8, B=3, C=3.0, M=4.0, N=2.0 ?
Página 18 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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.
Ejemplos:
Función
Descripción
Tipo de argunmento
Resultado
Expresión
Raiz(25)
Resultado
5
Abs(x)
Valor absoluto
Entero o real
Igual al arg.
Sin(x)
Seno
Entero o real
Real
Cos(x)
Coseno
Entero o real
Real
Nint(6.6)
7
Exp(x)
Exponencial
Entero o real
Real
Nint(3.1)
3
Alog(x)
Logaritmo natural
Entero o real
Real
Int(5.6)
5
Alog10(x)
Logaritmo base 10
Entero o real
Real
Int(3.1)
3
Int(x)
Parte Entera
Real
Entero
Nint(x)
Redondeo
Real
Entero
Abs(9)
9
Mod(x,y)
Resto de la división
Enteros
Entero
Abs(-12)
12
Sqrt (x)
Raiz cuadrado
Entero o real
Real
Mod(15,4)
3
Página 19 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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
Página 20 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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 )
Página 21 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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
Expresión 1
Expresión 2
V
F
V
F
V
F
F
F
Expresión 1
Expresión 2
V
F
V
F
V
V
V
F
AND: es la conjunción o multiplicación lógica
expresión lógica 1 AND expresión lógica 2
OR: es la disyunción o suma lógica
expresión lógica 1 OR expresión lógica 2
Ejemplos:
5 < B – 4 .AND. A = 4
X – 2 = 1 .OR. (X+3) > 6
.NOT. Z > 6
si A=4, B=3 ¿Resultado?
si X=3 ¿Resultado?
si Z=6 ¿Resultado?
Página 22 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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
A
Valor
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A+1
A
6
Se resuelve la expresión A+1 y el
resultado se almacena de nuevo en la
variable A
IMPORTANTE: No confundir igualdad matemática con asignación
Página 23 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
Asignación aritmética
Ejemplo2
Ejemplo1
AMN
TER1
TER2
COCIENTE




3 + 14 + 8
1.45 + 8
0.75 * AMN
TER1/TER2
Asignación lógica
Ejemplo3
M
N
P



A0
N1
AN+1
Asignación carácter
Ejemplo4
8<5
M .OR. (7 <= 12)
7>6
MAYUS 
MINUS 
SIGNO 
‘A’
‘a’
‘;’
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.
Página 24 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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.
Página 25 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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
Página 26 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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).
Página 27 de 28
Facultad de Ciencias Exactas, Ingeniería y Agrimensura – UNR
Informática
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.
Página 28 de 28
Descargar