Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Paradigma Imperativo, Apuntes de Algoritmos y Programación

Asignatura: Programació, Profesor: , Carrera: Enginyeria Informàtica, Universidad: UPV

Tipo: Apuntes

2015/2016

Subido el 28/11/2016

2131025-1
2131025-1 🇪🇸

3.3

(15)

9 documentos

1 / 135

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
LENGUAJES, TECNOLOGÍAS Y PARADIGMAS
DE LA PROGRAMACIÓN
TEMA 2. PARADIGMA IMPERATIVO
Javier Esparza Peidro – [email protected].es
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Vista previa parcial del texto

¡Descarga Paradigma Imperativo y más Apuntes en PDF de Algoritmos y Programación solo en Docsity!

LENGUAJES, TECNOLOGÍAS Y PARADIGMAS

DE LA PROGRAMACIÓN

TEMA 2. PARADIGMA IMPERATIVO

Javier Esparza Peidro – [email protected]

OBJETIVOS

Comprender los fundamentos del paradigma

imperativo

Aplicar los conceptos del paradigma imperativo

a lenguajes de programación concretos como C

y Python

BIBLIOGRAFÍA

 Introduction to Programming Languages. Anthony A. Aaby. 1996.  https://en.wikibooks.org/wiki/C_Programming  The C Programming Language. 2nd Ed. Kernighan & Ritchie.  https://www.python.org/

INTRODUCCIÓN

Modelo de computación

 Un programa ejecuta comandos (imperativo) de manera secuencial (uno detrás de otro), que cambian el estado de la máquina  Una computación se define como una secuencia de asignaciones (variable = valor) que modifican el estado de la máquina S 0 → S 1 → S 2 → … → S n- → S n

INTRODUCCIÓN

 El paradigma contempla comandos que nos permiten:

  1. Manejar el estado de la máquina
  2. Controlar el flujo de ejecución  Con estos dos tipos de comandos podemos controlar perfectamente la máquina  Estudiaremos ambos tipos de comandos en las siguientes traspas

INTRODUCCIÓN

 El paradigma incluye conceptos como programación estructurada y programación procedural  El paradigma orientado a objetos puede contemplarse como una extensión del paradigma imperativo Paradigma OO Paradigma Imperativo Lenguajes Imperativos Lenguajes estructurados Lenguajes procedurales

MANEJAR EL ESTADO

Variables y asignaciones

 Para utilizar una variable en C, es necesario declararla con antelación:

  1. Declaración de la variable: indicamos su tipo de datos
  2. Inicialización de la variable: se asigna un valor por primera vez, en el momento de la declaración
  3. Asignación de un valor a la variable: en cualquier instante posterior int a; int a = 10; a = 10; C int a, b, c;

MANEJAR EL ESTADO

Variables y asignaciones

 Varias formas de asignación: X = X op E → X op= E  Asignación múltiple a += 10; a= 10; a*= 10; a/= 10; C a = b = c = 10; Una asignación devuelve el valor asignado x = y = z es equivalente a x = (y = z)

MANEJAR EL ESTADO

Tipo de datos

 Determina el conjunto de valores que pueden ser asignados a una variable o expresión en un lenguaje (ej: el tipo entero contiene los valores 1,2,3,...)  En un lenguaje tipado todas las variables y expresiones tienen un tipo (ej: Java, C, Python, …)  Un lenguaje tipado posee un sistema de tipos bien definido Lenguaje tipado Expresiones Sistema de tipos

MANEJAR EL ESTADO

Sistema de tipos

 Colección de tipos de datos soportados por el lenguaje junto con conjunto de reglas que asocian a cada expresión un tipo  Respecto a los tipos de datos, la mayoría de sistemas de tipos soportan tipos de datos primitivos y tipos de datos compuestos  Respecto a las reglas, podemos identificar distintos sistemas de tipos:

  1. Estático vs dinámico
  2. Débil vs fuerte
  3. Implícito vs explícito

MANEJAR EL ESTADO

Sistema de tipos

 C es un lenguaje con sistema de tipos estático, fuerte y explícito  Las variables se declaran con anterioridad y por tanto su tipo de datos es conocido en el momento de compilación  Podemos clasificar el sistema de tipos en: (1) tipos de datos primitivos (int, char, float, double) y (2) tipos de datos compuestos (struct, union, array, string) C

MANEJAR EL ESTADO

Sistema de tipos

Tipos de datos primitivos  int (1 palabra, 32 ó 64), char (1 byte), float (1 palabra, 32 ó 64 bits), double (2 palabras, 64 ó 128 bits)  (^) El operador sizeof() devuelve el tamaño de un tipo o un valor en bytes  Los tipos de datos simples admiten los modificadores: long, short, signed, unsigned C int i = 10; char c = 'a'; float f = 3.14; sizeof(int) > 4 int i; sizeof(i); > 4 unsigned short int usi; short s; long l;

MANEJAR EL ESTADO

Sistema de tipos

Tipos de datos compuestos  struct: es una estructura de datos que contiene múltiples campos

  1. Primero declaramos la estructura y le damos un nombre
  2. Después declaramos variables de dicho tipo  Todo al mismo tiempo (con nombre o sin nombre) C struct mystruct { int i; double d; char c; }; struct mystruct myVar; struct mystruct { int i; double d; char c; } myVar; struct { int i; double d; char c; } myVar;

MANEJAR EL ESTADO

Sistema de tipos

Tipos de datos compuestos  struct: es una estructura de datos que contiene múltiples campos  Una vez creada la estructura accedemos a sus campos utilizando el operador.  Podemos crear nuevos tipos usando el operador typedef C struct { int i; double d; char c; } myVar; myVar.i = 10; myVar.d = 3.14; Typedef struct { int i; double d; char c; } MyStruct; MyStruct myVar, yourVar; myVar.i = 10; Es un tipo!!!