Sie sind auf Seite 1von 62

Programacin I 2013

Clase 1

Programacin I

Docentes
Teora: Ma. Virginia Ainchil - Federico Cristina
Prctica JTP: Sabrina Martorelli

Clase 1

Programacin I

Programacin I - Objetivos
Analizar problemas resolubles con computadora, poniendo nfasis en la modelizacin, abstraccin de funciones y en la descomposicin funcional de los mismos. Obtener una expresin sinttica y precisa de los problemas, con una documentacin de una metodologa de trabajo por el alumno. Estudio, expresin simblica, implementacin y evaluacin de algoritmos, orientando los mismos a la resolucin de las partes (mdulos) en que se descomponen los problemas, a partir de un paradigma procedural/imperativo.
Clase 1 Programacin I 3

Programacin I - Objetivos
Introduccin de las nociones de estructuras de datos, tipos de datos y abstraccin de datos. Introduccin de las nociones vinculadas arquitectura y organizacin de la computadora. a la

Introduccin de los conceptos de correccin y eficiencia de algoritmos.


Combinar los elementos mencionados anteriormente a fin de que el alumno complete el ciclo del problema a su solucin con computadora, analizando simultneamente algoritmos y datos.
Clase 1 Programacin I 4

Programacin I Aprobacin de la asignatura


La aprobacin de la materia consta de dos instancias: a) Aprobar un parcial. b) Con el parcial aprobado, aprobar el final.

La aprobacin del final se podr lograr por rgimen de promocin o con examen final.

Clase 1

Programacin I

Programacin I Informacin de la ctedra


En este curso trabajaremos con el entorno virtual WebUNLP (www.webunlp.edu.ar), para: Comunicarnos va una mensajera interna. Publicar las prcticas y materiales de estudio. Publicar informacin de inters de la cursada. Tambin encontrarn novedades en el blog de la Ctedra.

Clase 1

Programacin I

Programacin I Informacin de la ctedra

REGISTRARSE

Para quienes no tengan usuario deben ingresar primero a REGISTRESE

Programacin I Informacin de la Opciones generales ctedra del entorno


Cabecera

Opciones para el usuario conectado

Programacin I Informacin de la ctedra

1. Buscar Programacion I 2. Elegir el curso a cargo de Sanz, Cecilia 3. Hacer clic en Solicitar Inscripcin

Programacin I Informacin de la ctedra


Deben estar registrados para el da martes 19 a ms tardar. Una vez al da, los docentes los agregarn al curso y recin ah al ingresar podrn verlo.

Hacer clic en INGRESAR

10

Programacin I Informacin de la ctedra


reas del curso

11

Conceptos Bsicos
Anlisis de problemas. Definiciones fundamentales. Modelos, Abstracciones, Algoritmos. Algoritmos + Datos = Programas. Diferentes Tipos de Datos.

Informtica y el alcance de este curso

Clase 1

Programacin I

12

Informtica?

Clase 1

Programacin I

13

Qu es la informtica?
La Informtica es la ciencia que estudia el anlisis y resolucin de problemas utilizando computadoras. Analicemos la definicin:
La palabra ciencia se relaciona con una metodologa fundamentada y racional para el estudio y resolucin de los problemas. En este sentido la Informtica se vincula especialmente con la Matemtica y la Ingeniera.

La resolucin de problemas utilizando las herramientas informticas puede tener aplicaciones en reas muy diferentes tales como biologa, comercio, control industrial, administracin, robtica, educacin, arquitectura, etc.
Clase 1 Programacin I 14

Qu es la informtica?
La Informtica es la ciencia que estudia el anlisis y resolucin de problemas utilizando computadoras.

Una computadora es una mquina digital y sincrnica, con cierta capacidad de clculo numrico y lgico controlado por un programa almacenado y con probabilidad de comunicacin con el mundo exterior. La finalidad de la computadora es ayudar al hombre a realizar tareas repetitivas en menor tiempo y con mayor exactitud. La computadora no razona ni crea soluciones, sino que ejecuta una serie de rdenes que le proporciona el ser humano.

Clase 1

Programacin I

15

Objetivo de la Informtica
El objetivo principal de la disciplina Informtica es resolver problemas del mundo real utilizando computadoras.
Problema del mundo real Solucin

La computadora es una herramienta que podemos emplear en la resolucin de problemas. La posibilidad de resolver un problema real con una computadora depende del programa (software) que carguemos en la mquina.
Clase 1 Programacin I 16

Etapas de la resolucin de problemas


Lo que un informtico debe evitar...

Clase 1

Programacin I

17

Qu es un algoritmo?
Definiremos algoritmo como la especificacin rigurosa de la secuencia de pasos (instrucciones) a realizar sobre un autmata para alcanzar un resultado deseado en un tiempo finito.
En la definicin precedente hemos utilizado la expresin especificacin rigurosa a fin de significar que debemos expresar un algoritmo en forma clara y unvoca.

Alcanzar el resultado en tiempo finito significa que suponemos que un algoritmo comienza y termina. Est implcito que el nmero de instrucciones debe ser tambin finito.
Si el autmata es una computadora, tendremos que escribir el algoritmo en un lenguaje entendible y ejecutable por la mquina.
Clase 1 Programacin I 18

Qu es un dato?
Un Dato es una representacin de un objeto del mundo real mediante la cual podemos modelizar aspectos del problema que se quiere resolver con un programa sobre una computadora.
Es muy difcil representar datos reales en una computadora (que es binaria, es decir slo con capacidad de guardar 1 0). Imaginemos un objeto como las flores de la ciudad que el robot recoge. Qu son dentro de la computadora?

Representar datos, an los ms simples como los dgitos decimales, una letra, un nombre o un color, requiere una transformacin desde el mundo real a alguna forma de representacin binaria que pueda ser interpretada por la computadora. Datos ms complejos como una imagen, una cancin o la trayectoria de un avin tambin son representados en forma binaria. Para establecer la forma de modelizarlos e interpretarlos ser necesario un anlisis cuidadoso por parte de quien escriba el programa que los utilice.
Clase 1 Programacin I 19

Qu es un programa?
Es un conjunto de instrucciones u rdenes ejecutables sobre una computadora, que permite cumplir con una funcin especfica (dichas rdenes estn expresadas en un lenguaje de programacin concreto).
Recordemos Definimos algoritmo como la especificacin rigurosa de la secuencia de pasos (instrucciones) a realizar sobre un autmata para alcanzar un resultado deseado en un tiempo finito.

Clase 1

Programacin I

20

Qu es un programa?
En esta definicin asociamos programa con una funcin determinada o requerimiento a satisfacer por la ejecucin del conjunto de instrucciones que forman el programa. Normalmente los programas alcanzan su funcin objetivo en un tiempo finito. Un programa es correcto si cumple lo solicitado en los requerimientos. Una misma mquina puede realizar funciones muy diferentes, segn el programa que se le cargue.

Los programas de aplicacin constituyen el verdadero valor que da utilidad a las computadoras (programas WEB, de administracin, clculo, comunicaciones, control industrial, sistemas expertos etc.).
Los programas se escriben en un lenguaje de programacin siguiendo un conjunto de reglas sintcticas y semnticas.
Clase 1 Programacin I 21

Qu es programar?
A priori las tareas ms importantes que tiene alguien que debe escribir un programa para resolver un problema sobre una computadora son:
Elegir la representacin adecuada de los datos del problema. Elegir el lenguaje de programacin a utilizar, segn el problema y la mquina a emplear.

Definir el conjunto de instrucciones (en el lenguaje elegido) cuya ejecucin ordenada conduce a la solucin.

Clase 1

Programacin I

22

Programa = Instrucciones + Datos *


* Niklaus Wirth (nacido en 1934) reconocido cientfico de la computacin. Diseador de lenguajes de programacin como Pascal, Algol, Modula, Modula2, etc.

Las

instrucciones y datos.

componentes

bsicas

de

un

programa

son

Las instrucciones (que tambin se han denominado acciones) representan las operaciones que ejecutar la computadora al interpretar el programa.

Los datos son los valores de informacin de los que se necesita disponer y en ocasiones transformar para ejecutar la funcin del programa.
Clase 1 Programacin I 23

Pre-Condicin y Post-Condicin
Recordemos

Pre-condicin es la informacin que se conoce como


verdadera antes de iniciar el programa ( mdulo)

Post-condicin

es la informacin que debera ser verdadera al concluir el programa ( mdulo), si se cumplen adecuadamente los pasos especificados.

Clase 1

Programacin I

24

Definicin de Dato
Un Dato es una representacin de un objeto del mundo real. Los datos permiten modelizar los aspectos del problema que se quieren resolver mediante un programa ejecutable en una computadora.
Conceptualmente, por una parte se tienen datos constantes, datos que no cambian durante la ejecucin del programa.
Por otra parte, se pueden tener datos variables, es decir que durante la ejecucin del programa pueden cambiar.

Clase 1

Programacin I

25

Definicin de Tipo de dato


Los algoritmos generalmente operan sobre datos de distinta naturaleza (nmeros, letras, smbolos, etc.).

Por lo tanto, los programas que implementan dichos algoritmos, necesitan alguna manera de representarlos.

Un tipo de dato es una clase de objetos de datos ligados a un conjunto de operaciones para crearlos y manipularlos.

Clase 1

Programacin I

26

Definicin de Tipo de dato


Los tipos de datos se caracterizan por: Un rango de valores posibles. Un conjunto de operaciones realizables sobre ese tipo. Para que Una representacin interna.
sirven?

Clase 1

Programacin I

27

Definicin de Tipo de dato


Los tipos de datos se clasifican en:
Tipos de Datos

Simples

Compuestos

Los tipos de datos simples son aquellos que toman un nico valor, en un momento determinado, de todos los permitidos para ese tipo.
Los tipos de datos compuestos pueden tomar varios valores a la vez que guardan alguna relacin lgica entre ellos.
Clase 1 Programacin I 28

Definicin de Tipo de dato


A su vez, los tipos simples, pueden clasificarse en: Los tipos de datos definidos por el lenguaje (primitivos o estndar) son provistos por el lenguaje y tanto la representacin como sus operaciones y valores son reservadas al mismo. Los tipos definidos por el usuario, permiten definir nuevos tipos de datos a partir de los tipos simples.

Tipos de Datos

Simples

Compuestos

Def. por el lenguaje

Def. por el usuario

Clase 1

Programacin I

29

Definicin de Tipo de dato


Comenzaremos presentando los tipos simples y definidos por el lenguaje
Tipos de Datos

Simples

Compuestos

Def. por el lenguaje

Def. por el usuario

Numrico Carcter Lgico


Clase 1 Programacin I 30

El tipo de dato numrico


El tipo de dato numrico es el conjunto de los valores numricos que pueden representarse de dos formas:

Tipos Numricos

Enteros

Reales

Clase 1

Programacin I

31

El tipo de dato entero


El tipo de dato entero, es el tipo de dato numrico ms simple de todos. Los elementos son del tipo: ..., -3, -2, -1, 0, 1, 2, 3, ... Dado que una computadora tiene memoria finita, la cantidad de valores enteros que se pueden representar sobre ella son finitos, por esto se deduce que existe un nmero entero mximo y otro mnimo.

Clase 1

Programacin I

32

El tipo de dato entero


Hay sistemas de representacin numrica que utilizan 16 dgitos binarios (bits) para almacenar en memoria cada nmero entero, permitiendo un rango de valores enteros 15 y +215. Entonces podrn representarse los enteros entre -2 2011 entre -32768 y +32767

Otros sistemas utilizan 32 bits, por lo que el rango es 125 entre -231 y +231.
En general este mximo nmero entero se denomina MAXINT
30000
-12500 0 -23900 32767

Clase 1

Programacin I

33

El tipo de dato real


El tipo de dato real es una clase de dato numrico que permite representar nmeros decimales. Se debe tener en cuenta que el tipo de dato real tiene una representacin finita de los nmeros reales; dicha representacin tiene una precisin fija, o sea, un nmero fijo de dgitos significativos. Esta generalizacin de la conocida notacin exponencial o cientfica, utilizada por cualquier tipo de calculadora, y consiste en definir cada nmero como una mantisa (parte decimal) y un exponente (posicin de la coma). Tambin se utiliza la representacin en coma flotante como una generalizacin de la notacin cientfica.
Clase 1 34

Programacin I

El tipo de dato real


Permite representar valores decimales as como valores sumamente pequeos muy grandes
1.000.000 0,5
0,0004 3,14159265...

Se denomina mantisa a la parte significativa y luego se escribe el exponente.


Ejemplo 1
Ejemplo 2

976.000.000.000.000 en notacin cientfica: 9,76 x 1014

0.0000000000000976 En notacin cientfica: 9,76 x 10-14

Clase 1

Programacin I

35

El tipo de dato numrico: Operaciones.


Se ha visto hasta el momento la forma de representacin y los valores posibles de cada tipo de dato numrico. Como se indica en la definicin de tipo de dato, adems los mismos cuentan con un conjunto de operaciones posibles.

Las operaciones vlidas para el tipo de dato numrico son:


suma (+), resta (-), multiplicacin (*), divisin (/), divisin entera (div) y mdulo (mod).
Clase 1 Programacin I 36

El tipo de dato numrico: Operaciones.


No todas las operaciones definidas son aplicables a todos los tipos de datos numricos.
La suma, resta y multiplicacin aceptan tanto operandos enteros como reales, y por lo tanto, su resultado podr ser entero o real. En Pascal, la operacin de divisin solamente est definida para operandos reales y su resultado es real. Por ltimo, mod y div slo valen con operandos enteros y su resultado es entero.

Clase 1

Programacin I

37

El tipo de dato numrico: Operaciones vlidas

Operador Suma (+) Resta (-)

Tipos de Operandos Entero Real Entero Real

Tipo de resultado Entero Real Entero Real

Multiplicacin (*)
Divisin (/) Div Mod

Entero Real
Real Entero Entero

Entero Real
Real Entero Entero

Clase 1

Programacin I

38

El tipo de dato numrico: Operaciones.


Las expresiones que tienen dos o ms operandos requieren reglas matemticas que permitan determinar el orden de las operaciones. El orden de precedencia para la resolucin, ya conocido, es:
1. operadores *, / 2. operadores +, 3. operadores div y mod. En caso que el orden de precedencia natural deba ser alterado, es posible la utilizacin de parntesis dentro de la expresin.
Clase 1 Programacin I 39

El tipo de dato numrico: Operaciones.


Ejemplos
1. operadores *, / 2. operadores +, 3. operadores div y mod

6 + 8 * 5 = 6 + 40 = 46
(6 + 8) * 5 = 14 * 5 = 70

5 * 2 + 7 + 4 * 3 = 10 + 7 + 12 = 17 + 12 = 29

Clase 1

Programacin I

40

El tipo de dato numrico: Operadores relacionales


Adems de los operadores matemticos mencionados, el tipo de dato numrico posee operadores relacionales que permiten comparar valores. Dichas relaciones son la igualdad (=), desigualdad (<>) y de orden (<, <=, >, >=). Dependiendo del lenguaje de programacin estos operadores tendrn diferente representacin.

El resultado es del tipo de dato lgico. (Verdadero o Falso).

Clase 1

Programacin I

41

El tipo de dato numrico: Operadores relacionales


Ejemplos

0< 7
5<= 7

Resultado: verdadero
Resultado: verdadero

5>7
5 <> 7

Resultado: falso
Resultado: verdadero

5 >= 2
Pensemos:
Clase 1

Resultado: verdadero
5.0 = 5 ???
Programacin I 42

El tipo de dato lgico


El tipo de dato lgico permite representar datos que pueden tomar solamente uno de dos valores. Este tipo de dato tambin es llamado tipo de dato boolean.
Dichos valores son:

verdadero (true) falso (false)


Se utiliza en situaciones donde se representan dos alternativas de una condicin. Por ejemplo, en el caso de tener que determinar si un valor es mayor que 10; la respuesta ser verdadera en caso de serlo, de lo contrario ser falsa.
Clase 1 Programacin I 43

El tipo de dato lgico: operaciones


Los operadores lgicos o booleanos bsicos son:

negacin (not), conjuncin (and), disyuncin (or). El resultado de estas operaciones es correspondiente a las conocidas tablas de verdad. el

Clase 1

Programacin I

44

El tipo de dato lgico: operaciones


Ejemplos
(18 < 14) da como resultado falso

(25 / 2.5 = 10)


(28 > 13)

da como resultado verdadero


da como resultado verdadero da como resultado falso

not (8 > 3)
(17 > 2) and (19 = 33)
(17 > 4) or (19 = 33)

da como resultado falso


da como resultado verdadero

Clase 1

Programacin I

45

El tipo de dato lgico: operaciones


Existe un orden de precedencia para los operadores lgicos:

1. operador or 2. operador and 3. operador not

Clase 1

Programacin I

46

El tipo de dato carcter


El tipo de dato carcter representa un conjunto finito y ordenado de caracteres que la computadora reconoce. Un dato de tipo carcter contiene solo un carcter. Los caracteres que reconocen las computadoras no son estndar. Sin embargo, este conjunto de valores se normaliz, entre otros, por un estndar llamado ASCII, el cual permite establecer un orden de precedencia entre los mismos. Caracteres especiales:!, #, $, %,

Dgitos: 0, 1, 2, , 8, 9
Letras maysculas: A, B, C, , Y, Z Letras minsculas: a, b, c, , y, z
Clase 1 Programacin I 47

El tipo de dato carcter


IMPORTANTE Se debe tener en cuenta que no es lo mismo el valor entero 0 que el smbolo carcter 0.

Un valor del tipo de dato carcter es slo uno de los smbolos mencionados. Si tengo un carcter 4 y un carcter 3 podr aplicar la operacin de suma?

Clase 1

Programacin I

48

El tipo de dato carcter: operaciones


Los operadores relacionales descriptos en el tipo de dato numrico, pueden utilizarse tambin sobre los valores del tipo de dato carcter.

Esto es, dos valores de tipo carcter se pueden comparar por =, <>, >, <, >=, <=

El resultado de cualquiera de ellos es un valor de tipo de dato lgico.

Clase 1

Programacin I

49

El tipo de dato carcter: operaciones


Ejemplos (b = B) (c < Z)

da como resultado falso da como resultado falso

(c < z)
(X > 5) ( < H)

da como resultado verdadero


da como resultado verdadero da como resultado verdadero

(4 = 4) no puede evaluarse porque los operandos son de tipos distintos

Clase 1

Programacin I

50

El tipo de dato carcter: operaciones


Como conclusin, dado que hay diferentes tipos de datos debe destacarse que:

Los diferentes tipos de datos deben especificarse y a esta especificacin dentro de un programa se la conoce como declaracin.

Una vez declarado un tipo podemos asociar al mismo variables, es decir nombres simblicos que pueden tomar los valores caractersticos del tipo.

Clase 1

Programacin I

51

Variables
Una variable es, entonces, una zona de memoria cuyo contenido va a ser de alguno de los tipos mencionados anteriormente. La direccin inicial de esta zona se asocia con el nombre de la variable.

Variable A
Referencia una zona de memoria

Clase 1

Programacin I

52

Concepto de dato constante y variable


Llamaremos identificadores a los nombres descriptivos que se asocia a los objetos (constantes y variables) para abstraer dentro del programa su direccin real en memoria y su valor. En el ejemplo anterior, el identificador es A. En Pascal, los identificadores estn formados por letras, dgitos en cualquier orden y algunos smbolos especiales (excepto el primer carcter que debe ser una letra).

Clase 1

Programacin I

53

Declaracin de constantes y variables


Recordemos que: Si un dato NO cambia de valor durante todo el programa, se denomina constante. En Pascal, las constantes deben ser declaradas antes de ser usadas.

Clase 1

Programacin I

54

Declaracin de constantes y variables


Siguiendo su notacin, la declaracin de constantes en Pascal se realiza mediante la palabra clave const, de la forma:
const nombre = valor

donde nombre es el identificador que representa el nombre de la constante. El tipo de dato de la constante queda definido implcitamente por el tipo de dato de valor.
Clase 1 Programacin I 55

Declaracin de constantes y variables


Ejemplos
const N = 25 pi = 3.1416 c = C

{N se asume de tipo de dato entero } {pi se asume de tipo de dato real } {c se asume de tipo de dato carcter }

Clase 1

Programacin I

56

Declaracin de constantes y variables


Por su parte, las variables en Pascal se declaran utilizando la palabra clave var, de la forma:
var nombre_de_variable : tipo_de_variable

o, si hay varias variables del mismo tipo, se declaran separadas por coma y se le asocia el tipo de dato, una sola vez. Por ejemplo:
var nombre_de_variable_1,

,
nombre_de_variable_n: tipo_de_variable
Clase 1 Programacin I 57

Declaraciones de variables
Los diferentes tipo_de_variable posibles en Pascal se corresponden con los tipos de datos vistos hasta el momento.

integer real boolean char

tipo de dato numrico entero tipo de dato numrico real tipo de dato lgico tipo de dato carcter

Clase 1

Programacin I

58

Declaraciones de variables
Ejemplos (en Pascal)
Var
cantidad: integer; total_cobrado: real; estado: boolean; letra: char;

{cantidad puede contener un nro. entero} {total_cobrado puede contener nmero real } {estado puede contener valor lgico } {letra puede contener un carcter }

Estos tipos de datos se denominan definidos por el lenguaje y simples. Por qu?
Programacin I 59

Clase 1

Clasificacin de los lenguajes de acuerdo a la declaracin de sus variables


Algunos lenguajes, como Pascal, exigen que se especifique a qu tipo pertenece cada una de las variables Verifican que el tipo de los datos asignados a esa variable se correspondan con su definicin. Esta clase de lenguajes se denomina fuertemente tipados (strongly typed).
Clase 1 Programacin I 60

Clasificacin de los lenguajes de acuerdo a la declaracin de sus variables


Otra clase de lenguajes, que verifica el tipo de las variables segn su nombre, se denomina auto tipados (self typed). Existe una tercera clase de lenguajes que permiten que una variable tome valores de distinto tipo durante la ejecucin de un programa. Esta se denomina dinmicamente tipados (dinamically typed).

Clase 1

Programacin I

61

Estructura de un Programa
Esquema simple de programa en Pascal Program nombre; Var a: integer; car1, car2: char; Begin { Cuerpo del programa}

{Instrucciones ejecutables}
End.

Clase 1

Programacin I

62

Das könnte Ihnen auch gefallen