INFORMATICA DEL CBU Clase 9 Año 2016 FUNCIONES ARREGLOS.

Slides:



Advertisements
Presentaciones similares
Programación de Computadores
Advertisements

Programación de Computadores
Programación de Computadores
C lase 10 COMPUTACION /17/2014Computacion - Fac. Ingeniería2  Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.
Sesión 6 Sentencias de Repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
COMPUTACION 2009 Clase 6 Clase 7.
Resolución de Problemas y Algoritmos Uso de iteración con secuencias
Programación en Pascal
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
75.40 Algoritmos y Programación I
Vectores y Matrices.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 7 – Funciones y Procedimientos.
Trabajar con módulosTrabajar con variables públicasCrear procedimientos Pasar argumentos por valor y por referencia Referencia rápida.
Ciclos disponibles en Visual Basic Nury Capera Tovar.
PROGRAMACIÓN I CENTRO DE ESTUDIOS INTEGRADOS EL MARISCAL - CEIM Ing. Luisa Fernanda Arenas Castañeda Feb 6 de 2016.
Programación II Sesión 3. TABLA DE CONTENIDO  Tipos de Datos en C  Delimitadores  Tipo Char  Tipo Int  Tipo Float  Tipo Double  Constantes  Operadores.
Administración de Sistemas Gestores de Bases de Datos.
PROGRAMACIÓN ORIENTADA A OBJETOS SEGUNDA UNIDAD: “CLASES, OBJETOS Y MÉTODOS” IRVING YAIR SALAS CHÁVEZ ING. EN SISTEMAS COMPUTACIONALES - ITSLP.
Funciones en lenguaje C 2 Funciones Definición: – Las funciones son los bloques de construcción básicos de C. Dentro de ellas se da toda la actividad.
Control, adquisición y monitoreo con Arduino y Visual Basic .net
Introducción a la Programación Multimedial
INFORMATICA DEL CBU Clase 8 Año 2016 PROCEDIMIENTOS.
Métodos y parámetros.
Stored Procedures Firebird.
Estructuras de Datos Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de.
FUNCIONES Y PROCEDIMIENTOS
Resolución de problemas y algoritmos
Métodos en Java.
Estructuras de Datos Recursividad.
Página Web del Lenguaje Pascal.
Arreglos. en Lenguaje C n
Guía teórica de manejo de estructuras de datos
5. SQL Procedural.
Tema 2 Variables y cálculos
Bucles y estructuras de decisión
Paso por Referencia v/s Paso por Valor
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 2)
LENGUAJE DE PROGRAMACION III Estructuras Estáticas de Datos
Procedimientos y Funciones
Unidad 3. Introducción a la programación
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 1)
Hardware Description Language
Diego Hernández R Pascal Variables Diego Hernández R
INFORMATICA DEL CBU Clase 10 Año 2016 ARREGLOS.
Introducción al Visual Basic  Un programa en sentido informático está constituido en un sentido general por variables que contienen los datos con los.
Estructuras de Control Ciclos
INFORMATICA DEL CBU Clase 11 Año 2016 ARREGLOS.
Tema 9. Estructuras de repetición. Clase 3
Estructuras de Control
Procesamiento de señales Introducción a Matlab 2014
Paso por Referencia v/s Paso por Valor
Bucles y estructuras de decisión
INTRODUCCION Hasta ahora solo hemos tenido que trabajar con algunas variables en cada uno de los programas que hemos realizado. Sin embargo, en más de.
Docente: Ing. Francisco Rodríguez
Estructuras de Datos Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de.
Estructuras de Control 2 Ciclos
Estructuras de Control 3 Ciclos
MC Beatriz Beltrán Martínez Verano 2018
Curso de Programación Estructurada
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 1)
Diego Hernández R Pascal Variables Diego Hernández R
Informática Ingeniería en Electrónica y Automática Industrial
Procedimientos y Funciones
String, arreglos y arreglos bidimensionales
Diego Hernández R. Archivos Diego Hernández R.
String, arreglos y arreglos bidimensionales
Guía teórica de manejo de estructuras de datos
Procedimientos y Funciones
Funciones Subprogramas definidos por el usuario Subprogrmas.
UNIDAD VI ARREGLO UNIDIMENSIONAL
Transcripción de la presentación:

INFORMATICA DEL CBU Clase 9 Año 2016 FUNCIONES ARREGLOS

PRIMERA PARTE PROCEDIMIENTOS PROCEDURE. Parámetros por valor. Parámetros por referencia. Mg. Ing. Fátima Martínez

Procedimientos Se los invoca mediante un nombre de procedimiento seguido de una lista (opcional) de parámetros. Al invocar al procedimiento se puede transferir cualquier número de datos o ninguno. No devuelven un valor cuando devuelven el control. Se suelen utilizar para recibir o procesar entradas, mostrar salidas. Mg. Ing. Fátima Martínez

Palabra clave PROCEDURE PROCEDURE nombre ([parámetros formales]); Bloque Declarativo Begin Bloque de Instrucciones End; Mg. Ing. Fátima Martínez

Llamadas a Procedimiento Se escribe el nombre del procedimiento en el lugar donde queremos que se ejecute. Si el procedimiento contiene parámetros, éstos deberán ser pasados entre paréntesis. Mg. Ing. Fátima Martínez 5

Declaración de parámetros Se declaran igual que las variables especificando: un nombre, un tipo de datos y un mecanismo para pasar parámetros (por valor o por referencia). Mg. Ing. Fátima Martínez 6

Problema. Determine el Mayor Mg. Ing. Fátima Martínez

Ejemplo de PROCEDURE Program Mayor; uses crt; (*-------------------------------------------------------*) Procedure Maximo(A,B,C: integer); var Max: integer; Begin If (A>B) and (A>C) then Max := A; if (B>A) and (B>C) then Max := B; if (C>A) and (C>B) then Max := C; writeln('El mayor es ', Max); End; Mg. Ing. Fátima Martínez

Llamadas a Procedimiento (*------------------------------------*) var a, b, c: integer; Begin (*Bloque principal*) clrscr; repeat write ('Ingrese 3 enteros. Para terminar ingrese 0'); readln(a, b, c); Maximo(a, b, c); (*Llamada a procedimiento*) until ((a=0) and (b=0) and (c=0)); End. Mayor Mg. Ing. Fátima Martínez

Muy importante Los parámetros actuales (desde la invocación) deben corresponderse… En cantidad. En tipo En orden Con los parámetros formales que espera la declarativa formal del subprograma. Mg. Ing. Fátima Martínez

Parámetros por Valor Se denominan también parámetros de entrada. Actúan como una copia de aquél que es enviado desde el punto de invocación. Cualquier cambio realizado en el procedimiento no afecta a la variable original. Mg. Ing. Fátima Martínez

Parámetros por Referencia Los parámetros formales reciben las direcciones de memoria que referencian a los valores de los parámetros actuales. No es una copia sino el original. Cualquier cambio dentro de la rutina afecta la variable original. En la sintaxis el identificador va precedido de la palabra reservada var. Mg. Ing. Fátima Martínez

IMPORTANTE Un procedimiento puede o no devolver un valor al punto desde donde fue invocado (bloque principal u otro subprograma). Si devuelve un valor, el parámetro que devuelva esa información deberá ser pasado por referencia. Mg. Ing. Fátima Martínez

SEGUNDA PARTE FUNCIONES Funciones Estándares. FUNCTION. Llamada a una Función. Mg. Ing. Fátima Martínez

Función Devuelve un valor de manera explícita. Comienza con la palabra clave Function seguida a continuación de un nombre. Sigue con una lista de parámetros entre paréntesis. Finaliza con : tipo de valor que retorna.

FUNCIONES ESTÁNDARES Con o sin parámetros: Write (Temperatura, Altura, presión); F := chr(67); Read (Numero); Clrscr(); Area := PI *sqr (Radio); X := round(X); Distancia := sqrt(sqr(x) + sqr(y));

Function Instrucciones localizadas entre Begin y End; Function Nombre(Param1:Tipo1; Param2:Tipo2) : Tipo; El control no vuelve al programa de llamada hasta que se ejecute una instrucción End; Tipo de función, especifica el tipo de dato que devuelve. Mg. Ing. Fátima Martínez 17

Function Begin End; Function Nombre(Param1:Tipo1; Param2:Tipo2): Tipo; Var variable : tipo1; Begin (*Operaciones*); … Nombre := resultado; // así devuelve valor End;

EJEMPLO de FUNCION Function Potencia(base: double; exp: integer): double; var i:integer; Pot: double; begin Pot := 1; // inicializa if (exp>0) then for i:=1 to exp do Pot := Pot * base; else Sigue->

if (exp< 0 ) then exp := -1*exp; for i:=1 to exp do begin Pot := Pot * base; end; // del for Pot := 1/Pot; End; // del if Potencia := Pot; // devuelve valor End; // de la fn Mg. Ing. Fátima Martínez

LLAMADA A UNA FUNCIÓN Para ejecutar o llamar una función: Nombre([argumentos]) Los paréntesis se incluyen aunque no tenga argumentos. Argumentos: variables o expresiones que se pasan a la función. Se separan con coma. Número y tipo de argumentos deben coincidir con número y tipo de parámetros de la función. Se utiliza su nombre en una expresión: impuestos := ImpuesTotales(5000); Writeln(ImpuesTotales(5000)); 21

Ejemplo de llamada a Función (*---------En el bloque principal------------------*) Begin clrscr; writeln('Ingrese Base y un exponente entero '); readln(a,b); P:=Potencia(a,b); writeln(P:2:4); Readkey; End. writeln(Potencia(a,b));

Valor devuelto en el nombre de la función Function QueComer (DiaSemana: String, Hora: integer) : String; Begin (*Devuelve el menú de acuerdo al día y la hora*) If DíaSemana = ‘Viernes’ then QueComer := ‘Pescado’; Else QueComer := ‘Pollo’; End ; If Hora > 4 Then QueComer := ‘Demasiado tarde’ ; 23

Problema 1 Se tiene un circunferencia de Radio R = 50. Generar 100 circunferencias con centros aleatorios, cuyas coordenadas son xg e yg y radio r = 10. Determinar y mostrar cuantos se encuentran dentro de la circunferencia.

r = 10 R = 50

COMIEZO DE ALGORITMO FIN DE ALGORITMO. CIRCULOS cant:=0; rg := 10; R := 50; Para cont := 1 Hasta 100 Hacer Comienzo xg ← -80 + Aleatorio (80-(-80)+1); yg ← -60 + Aleatorio(60-(-60)+1); dist ← RaizCuadrada( xg 2 + yg 2 ); dist ← dist + rg; Si (dist < R) Entonces cant ← cant + 1; Fin; Escribir ('Cantidad Dentro= ', cant); FIN DE ALGORITMO. CIRCULOS

Procedimientos VS Funciones Son invocados por su nombre. Pueden recibir argumentos. Devuelven un valor cuando devuelven el control. Se suelen utilizar para llevar a cabo cálculos. PROCEDIMIENTOS Son invocados por su nombre. Pueden recibir argumentos. No devuelven un valor cuando devuelven el control. Se suelen utilizar para recibir o procesar entradas, mostrar salidas. Mg. Ing. Fátima Martínez

Variables Globales y Locales Ámbito de una variable: región donde se encuentra declarada. En Declaraciones Generales: Globales. Pueden ser utilizadas interiormente o exteriormente. Internamente o localmente: Locales. No pueden ser utilizadas exteriormente. Usar variables globales o locales depende del la necesidad del programa. Puede utilizarse el mismo identificador para entidades diferentes en lugares diferentes. Mg. Ing. Fátima Martínez 28

Locales: accesibles dentro un bloque de código. Globales a nivel del código fuera de un bloque. Var factor: integer; Function Factorial(numero: integer): Longint; var producto: Longint; begin If numero <= 1 Then Factorial := 1 Else begin producto := 1; For factor := 2 To numero begin producto := producto * factor; End; Factorial := producto; Global Local Factorial Mg. Ing. Fátima Martínez 29

TERCERA PARTE ARREGLOS ARRAY. Unidimensionales: Vectores. Declarar arreglos. Type: tipo de datos definido por el usuario. Operaciones con vectores. Asignación. Mg. Ing. Fátima Martínez

ARREGLOS Datos simples: Datos estructurados: Arreglos Integer, Real, Char, Boolean. Cada variable representa un sólo dato individual. Datos estructurados: Arreglos Colección finita de datos (variables) del mismo tipo. Un único identificador representa a múltiples datos individuales. Pueden ser manipulados colectiva o individualmente. Mg. Ing. Fátima Martínez

Mg. Ing. Fátima del C. Martínez ARREGLOS (ARRAY) Se le asigna una cantidad fija de memoria. Se almacenan en posiciones contiguas de memoria. El mismo identificador (nombre de variable). Cada elemento identificado por un índice. El número de índices determina su dimensionalidad. Acceso directo a cada elemento del arreglo: x[1], x[2], x[3]… x[n] Mg. Ing. Fátima del C. Martínez 11/17/2018

Mg. Ing. Fátima del C. Martínez Vectores Arreglo unidimensional (lista). 7.50 4.75 6.55 5.25 6 … (1) (2) (3) (4) (…) (n) Calificaciones Nombre del vector: Calificaciones Subíndice: [2] Contenido: Calificaciones[2] := 7.50 Mg. Ing. Fátima del C. Martínez 11/17/2018

Declarar ARREGLOS Su índice comienza en 1. Se declaran especificando: Nombre del arreglo. Tamaño. Tipo de datos de los elementos del arreglo. Su índice comienza en 1. Mg. Ing. Fátima Martínez

Declaración formal de un arreglo En una declaración de variable: Var nombreArreglo: array[tipo de indice] Of tipo Ejemplo: Arreglo de 100 elementos de tipo real Var lista : array[1..100] Of real; Crear un “alias” mediante una declarativa type: Type Vect = array[1..100] Of real; Var lista: Vect; Mg. Ing. Fátima Martínez

OPERACIONES CON VECTORES Asignación: igual a cualquier variable, pero poniendo el número de índice del elemento entre [ ]. Var Notas: Vect; For i := 1 To 100 begin Notas[i] := 1 + random(10); suma = suma + Notas[i]; End; Promedio := suma/100; … NOTAS Mg. Ing. Fátima del C. Martínez 11/17/2018

Ejemplo 1 Considerar el vector lista de 100 elementos. Examinar el valor de cada elemento del arreglo y escribir aquellos valores que sean negativos. For cuenta:=1 To 100 do If lista[cuenta]<0 Then writeln(cuenta:3, lista[cuenta]:4:2); Mg. Ing. Fátima Martínez

Ejemplo 2 Leer una lista de N cantidades de temperaturas. Calcular la media y obtener la desviación de cada uno de las temperaturas respecto de la media: desviación = x[i] - media Mg. Ing. Fátima Martínez

Modularización del programa Escribiremos procedimientos distintos para: Leer los datos de la lista. Calcular la media. Calcular la desviación y guardarla en otro vector. Mostrar el vector de la lista. Mostrar el vector de la desviación. Mg. Ing. Fátima Martínez

Leer datos de la lista Emplearemos un bucle: For i:=1 To final do Begin write(‘La temperatura ’,i, ‘ -> ’); readln(lista[i]); End; Mg. Ing. Fátima Martínez

Calcular la media suma:=0; For i:=1 To final do Begin suma := suma + lista[i]; End; media := suma/final; Mg. Ing. Fátima Martínez

Calcular las desviaciones For i:=1 To final do Begin desviacion[i]:= media - lista[i]; End; Mg. Ing. Fátima Martínez

Mostrar resultados Writeln(‘Temperaturas: ’); For i:=1 To final do write(lista[i]:5:2); Writeln(); Writeln(‘Media: ’, media); Writeln(); Writeln(‘Desviaciones: ’); write(desviacion[i]:5:2); Desviaciones Mg. Ing. Fátima Martínez

Ejemplo 3 Pasar una cadena de caracteres a mayúsculas considerando el CODIGO ASCII de los caracteres. Codigo ASCII Mayusculas Mg. Ing. Fátima Martínez