Dra. Jessica Andrea Carballido
|
|
- Julio Pereyra Soriano
- hace 5 años
- Vistas:
Transcripción
1 Dra. Jessica Andrea Carballido Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR
2 Pasaje de Parámetros Cuando comienza la ejecución de un programa en Pascal se reservan una o más celdas en memoria para cada una de las variables globales (variables declaradas en el programa principal). Cuando un procedimiento o función se invoca se reservan celdas para cada una de las variables locales al procedimiento o función, como así también para los parámetros. Para cada parámetro pasado por referencia se reserva una celda que mantiene la referencia (una flecha) al parámetro real. Todas estas celdas son liberadas cuando el procedimiento o función termina.
3 Manejo de memoria Program intercambios; var a, b: integer; begin Writeln( Ingrese un valor para a y uno para b ); Readln(a, b); SWAP(a, b); Writeln( El valor de a es:, a, y el de b es:, b); End. procedure SWAP(var x, y: integer); var aux: integer; begin aux:=x; x:=y; y:=aux; end; Porqué decimos que funcionan que funcionan como datos como de datos E/S? de E/S?
4 Función o procedimiento? No tiene datos de salida: Procedimiento Tiene dos o más datos de salida: Procedimiento Tiene un dato de salida de un tipo estructurado: Procedimiento Tiene un único dato de salida de un tipo simple (número, lógico o char) REFLEXIONAR SOBRE CÓMO VA A SER USADA LA PRIMITIVA! Y sobre si tiene efectos colaterales!
5 EFECTO COLATERAL O SECUNDARIO DE UNA FUNCIÓN: Se dice que una función tiene un efecto colateral o efecto secundario si, además de retornar un valor, modifica el estado de su entorno. Por ejemplo, una función podría modificar una variable global, modificar un argumento por referencia, escribir datos a la pantalla o a un archivo, o leer datos desde teclado o desde un archivo. Los efectos secundarios frecuentemente hacen que el comportamiento de un programa sea más difícil de predecir. NO SON ACONSEJABLES.
6 En este punto es importante reflexionar sobre lo siguiente: LAS EXPRESIONES DEBERÍAN ESTAR EXENTAS DE EFECTOS COLATERALES. Una función siempre se usa en el contexto de una expresión. Es decir, a diferencia de las sentencias que son instrucciones cuyo objetivo es cambiar el estado del entorno, las expresiones no deberían hacerlo. FUNDAMENTAL, DIFERENCIAR EXPRESIÓN de SENTENCIA!!!! Para lograr esto, nuestras funciones: Nunca accederán a variables globales. (casi) Nunca tendrán parámetros por referencia. No deberían leer datos de consola ni escribir en pantalla. No deberían modificar el estado de los archivos. Esta filosofía favorece la independencia entre las primitivas y la legibilidad.
7 Problema: Calcular la suma de los dígitos de un número. Algoritmo SumaDig DE: numero (entero) DS: SumaDig (entero) En este caso lo más natural es hacer una función. La primitiva realiza un cálculo y no tiene efectos colaterales.
8 Problema: Calcular la suma de los números naturales de una secuencia ingresada por teclado que finaliza en 0. DE: secuencia de números (enteros) DS: suma (entero) // un dato de salida, de tipo simple Se oscurece la legibilidad
9 Problema: Calcular la suma de los números naturales de una secuencia ingresada por teclado que finaliza en 0. DE: secuencia de números (enteros) DS: suma (entero) // un dato de salida, de tipo simple Además del cálculo realiza el recorrido de la secuencia. En este caso se aconseja implementar un PROCEDIMIENTO.
10 CONCLUSIÓN Que la primitiva tenga un único dato de salida de un tipo simple, es una CONDICION NECESARIA PERO NO SUFICIENTE para decidir implementar una FUNCIÓN. Si la primitiva tiene efectos colaterales, la implementaremos con un PROCEDIMIENTO. El caso más común de efecto colateral en los ejemplos que vemos en esta materia es cuando la primitiva procesa secuencias (desde teclado o archivos).
11 División de problemas en sub-problemas ARCHIVOS COMO PARÁMETROS Se pasan siempre por referencia. Junto con la referencia al archivo pasado como parámetro, se cuenta con la siguiente información: - El archivo está: - cerrado. - abierto: - para lectura (posición) - para escritura (posición)
12 División de problemas en sub-problemas Problema 1: Escribir una primitiva para sumar los elementos contenidos en un archivo. PROCEDIMIENTO (podría ser función) Tiene un solo dato de salida de un tipo simple, pero para calcularlo recorre un archivo. Procedure suma(var f: text; var s: integer); Var n: integer; Begin f es dato de s:=0; reset(f); entrada! While not eof(f) do Begin read(f, n); s:=s+n; End; Close(f); End; TRAZA con pgm. ppal. en el pizarrón Como el objetivo del procedimiento es recorrer el archivo en su totalidad, la apertura y el cierre del archivo se hacen en su bloque ejecutable.
13 División de problemas en sub-problemas Problema 2: Escribir una primitiva para calcular el promedio de los elementos contenidos en un archivo de enteros. procedure prom(var arch: text; var prom: real); Problema 3: Escribir una primitiva para calcular el máximo de los elementos contenidos en un archivo de enteros. procedure max(var arch: text; var max: real); Problema 4: Escribir un programa que pida al usuario (y valide) una opción entre 1 y 3 y realice la operación correspondiente, usando las primitivas previamente implementadas. HINTs: - El archivo es único y se asigna solamente en el programa principal. - Cada primitiva abre el archivo, lo recorre y lo cierra.
14 IMC: Los archivos pasados como parámetros se abren FUERA de la primitiva. Dentro de la primitiva solo se avanza el puntero desde la posición actual. Promedio de notas por línea: El archivo pasado como parámetro se abre FUERA de la primitiva. Dentro de la primitiva solo se avanza a la siguiente línea luego de calcular el promedio de las notas.
15 División de problemas en sub-problemas Retomamos el problema de IMC: A partir de un archivo que en cada línea tiene un nombre, un espacio, una altura y un peso, se desea generar un nuevo archivo con los nombres y el IMC correspondiente a cada uno de ellos.
16 División de problemas en sub-problemas Hacer procedimiento que copia el nombre!
17 En cada ejecución de pasarnombre se lee desde la posición ACTUAL de origen. En cada ejecución de pasarnombre se escribe en la posición ACTUAL de destino. Los archivos se abren antes de invocar a la primitiva.
18 Importante: EN ESTE EJEMPLO los archivos se abren una única vez en el programa principal, fuera del procedimiento. El procedimiento pasarnombre lee un carácter desde la posición actual cada vez que es invocado y lo copia al otro archivo en su posición actual, hasta encontrar un espacio. Los archivos se cierran una única vez en el programa principal.
19 División de problemas en sub-problemas PROBLEMA: En un archivo se almacenan por línea una cantidad variable de notas de distintos alumnos. Se desea conocer el promedio de cada secuencia de notas. Algoritmo notasporlinea DE: archivo DS: info por pantalla Abrir archivo para lectura Mientras hay datos para leer en el archivo procesar una línea y calcular el promedio mostrar el promedio cerrar archivo
20 División de problemas en sub-problemas Problema: recorrer un archivo. Reset(archivo); While not eof(archivo) do Begin suma:=0; cant:=0; End; Close(archivo); Hacer una función que calcula el promedio? while not eoln(archivo) and not eof(archivo) do begin read(archivo, nota); suma:=suma+nota; cant:=cant + 1; end; if (eoln(archivo)) then readln(archivo); writeln( Promedio:, suma/cant); Sub-problema: Recorrer una línea
21 Sub-problema: Recorrer una línea function promlinea(var f: text): real; Var nota, suma, cant: integer; Begin suma:=0; cant:=0; while (eoln(f)=false) and (eof(f)=false) do begin read(f, nota); suma:=suma + nota; cant:=cant+1; end; If eoln(f) then readln(f); promlinea:=suma/cant; End; Además de devolver el promedio de la línea, se AVANZÓ UNA LINEA EN EL ARCHIVO.
22 División de problemas en sub-problemas Problema: recorrer un archivo. begin Assign(archivo, ); Reset(archivo); While not eof(archivo) do writeln( Promedio:, promlinea(archivo):4:2); Close(archivo); End. Oscurece la legibilidad En cada invocación a la primitiva se avanza una línea en el archivo desde el último lugar donde se dejó además de calcular el promedio.
23 Sub-problema: Recorrer una línea Procedure promlinea (var f: text; var prom: real); Var nota, suma, cant: integer; Begin suma:=0; cant:=0; while (eoln(f)=false) and (eof(f)=false) do begin read(f, nota); suma:=suma+nota; cant:=cant+1; end; If eoln(f) then readln(f); prom:=suma/cant; End;
24 Sub-problema: Recorrer una línea Procedure promlinea (var f: text; var prom: real); Var nota, suma, cant: integer; Importante: Begin suma:=0; cant:=0; while única (eoln(f)=false) vez, fuera and del (eof(f)=false) procedimiento. do begin read(f, nota); suma:=suma+nota; cant:=cant+1; una línea en el archivo. end; If eoln(f) then readln(f); prom:=suma/cant; End; PARA ESTE EJEMPLO los archivos se abren una El objetivo del procedimiento promlinea es calcular el promedio de la línea actual cada vez que es invocado. El efecto colateral es avanzar
25 División de problemas en sub-problemas Problema: recorrer un archivo. begin Assign(archivo, ); Reset(archivo); While not eof(archivo) do Begin promlinea(archivo, promedio); writeln( Promedio:, promedio); End; Close(archivo); End Elegimos implementar un procedimiento, a pesar de que la primitiva tiene un único dato de salida de un tipo simple!! En cada invocación a la primitiva se avanza una línea en el archivo desde el último lugar donde se dejó. O sea, se modifica el estado del archivo!!! ADEMÁS se calcula el promedio.
26 División de problemas en sub-problemas PROBLEMA: En un archivo se almacenan por línea una cantidad variable de notas de distintos alumnos. Se desea conocer la mínima y máxima notas de cada alumno. Algoritmo notasporlinea DE: archivo DS: info por pantalla Abrir archivo para lectura Mientras hay datos para leer en el archivo procesar una línea y calcular min y max mostrar min y max cerrar archivo
27 b a. i! donde a y b son datos de entrada. i=a z b. donde z y e son datos de entrada. i=1 5 i e c. (a 2 i ) donde a es dato de entrada. i=1 M d. (2 k + k) donde M es dato de entrada. k=1 Escribir funciones para calcular estas operaciones, modularizando adecuadamente. Hacer un programa que pida una opción (entre a y d) y realice el cálculo correspondiente.
28 Para estudiar en casa y preguntar a la profe en la consulta
29 Temperaturas: El archivo pasado como parámetro se abre y se cierra dentro de la primitiva.
30 División de problemas en sub-problemas Problema: El archivo de texto temp.txt contiene las temperaturas mínimas y máximas de cada día durante un período. En cada línea del archivo hay una mínima y una máxima correspondientes a un determinado día. 1. Escriba un procedimiento que calcule el promedio entre las mínimas y el promedio entre las máximas. 2. Escriba un procedimiento que calcule en cuántos días la mínima fue menor al promedio de las mínimas y en cuántos días la máxima fue mayor al promedio de las máximas. 3. Escriba un programa que use los procedimientos anteriores y muestre todos los valores calculados.
31 División de problemas en sub-problemas En el siguiente ejemplo se consideran 4 días, solo 1 día la mínima fue menor al promedio de las mínimas, y en 2 días la máxima fue mayor al promedio de las máximas. Mínima Máxima Promedios
32 División de problemas en sub-problemas program temperaturas; procedure promedios(var t: text; var pmin, pmax: real); begin end; procedure contar(var t: text; pmin, pmax: real; var cmin, cmax: integer); begin end; begin end. Los archivos son los únicos datos que independientemente de que sean dato de entrada o de salida, se pasan SIEMPRE por referencia (por variable)
33 División de problemas en sub-problemas El procedimiento promedio tiene tres parámetros. El parámetro t corresponde al archivo que es un dato de entrada, pero las variables ligadas a archivos siempre se pasan por referencia. Los parámetros pmin y pmax están pasados por referencia porque son los datos de salida. El procedimiento contar tiene cinco parámetros. El parámetro t corresponde al archivo que es un dato de entrada, pero las variables ligadas a archivos siempre se pasan por referencia. Los parámetros pmin y pmax están pasados por valor porque son datos de entrada. Los parámetros cmin y cmax están pasados por referencia porque representan los datos de salida. Los archivos son los únicos datos que independientemente de que sean dato de entrada o de salida, se pasan SIEMPRE por referencia (por variable)
34 TOP-DOWN División de problemas en sub-problemas Declaraciones de los procedimientos contar y promedios
35 División de problemas en sub-problemas 1 dato de entrada. 2 datos de salida. Como el procedimiento debe recorrer el archivo desde el principio, la apertura y el cierre del archivo se hacen en su bloque ejecutable.
36 División de problemas en sub-problemas 3 datos de entrada. 2 datos de salida. Como el procedimiento debe recorrer el archivo desde el principio, la apertura y el cierre del archivo se hacen en su bloque ejecutable.
37 Text División de problemas en sub-problemas Problema: Dado un archivo de texto T conteniendo un documento, generar un archivo E con estadísticas sobre la cantidad de dígitos, cantidad de vocales y cantidad de consonantes en cada oración del documento. Algoritmo estadisticaspororacion DE: T DS: E Dlocal: oración, cantdig, cantvoc, cantcons Abrir T para lectura Abrir E para escritura oracion:=1 Mientras que no se termine T hacer cerrararchivos Procesar Oracion estadísticas PorOracion ProcesarOracion(T, cantdig, cantvoc, cantcons) AnotarEstadistica(E, oracion, cantdig, cantvoc, cantcons) oracion:=oracion+1 Anotar Estadistica La lectura y escritura de los archivos se realiza de forma parcial en sucesivas llamadas a las primitivas
38 División de problemas en sub-problemas Text Problema: Dado un archivo de texto T conteniendo un documento, generar un archivo E con estadísticas sobre la cantidad de dígitos, cantidad de vocales y cantidad de consonantes en cada oración del documento. estadísticas PorOracion T estadísticas PorOracion E Procesar Oracion Anotar Estadistica T Procesar Oracion cd cv cc T E cd cv cc n Anotar Estadistica E
39 División de problemas en sub-problemas Algoritmo ProcesarOracion DE: T DS: cdig, cvoc, ccons Dlocal: ch En esta primitiva es el único lugar donde se lee y avanza en el archivo de entrada ch:=, cdig=0, cvoc=0, ccons=0 mientras que no se termina T y ch<>. hacer leer(t, ch) si esvocal(ch) entonces cvoc=cvoc+1 sino si esdigito(ch) entonces cdig=cdig+1 sino si esconsonante(ch) entonces ccons=ccons+1
40 División de problemas en sub-problemas Algoritmo AnotarEstadistica DE: nrooracion, cdig, cvoc, ccons DS: E escribir(e, Estadisticas de la oracion numero:, nrooracion) escribir(e, Cant Digitos:, cdig) escribir(e, Cant Vocales:, cvoc) escribir(e, Cant Vocales:, ccons) En esta primitiva es el único lugar donde se escribe en el archivo de salida
41 División de problemas en sub-problemas Program estadisticaspororacion; var d1, d2: text; // d1 es T, d2 es E oracnro, cantvoc, cantdig, cantcons: integer; begin assign(d1,. ); assign(d2,. ); end.
42 División de problemas en sub-problemas Al pasar por parámetro un archivo, se pasa la siguiente información: - El archivo está abierto o cerrado? - Si está abierto, - está abierto para lectura o para escritura? - posición actual en el archivo.
43 División de problemas en sub-problemas estadísticas PorOracion (not eof(d) and ch<>. ) esdigito Procesar Oracion esvocal Anotar Estadistica esconsonante
44 División de problemas en sub-problemas
45 Text Recorridos simples Problema: Dado un archivo de texto conteniendo un documento, generar un nuevo archivo con el mismo contenido pero sin las apariciones de la letra a. Algoritmo sina DE: archivoentrada DS: archivosalida Dlocal: caracter Abrir archivoentrada para lectura Abrir archivosalida para escritura Mientras no se termine archivoentrada hacer leer(archivoentrada, caracter) si caracter distinto de a entonces escribir(archivosalida, caracter) cerrararchivos
46 Text Recorridos simples Problema: Dado un archivo de texto conteniendo un documento, generar un archivo con el mismo contenido, omitiendo las partes entre paréntesis. Algoritmo sinparentesis DE: archivoentrada DS: archivosalida Dlocal: caracter and not eof(d1) Abrir archivoentrada para lectura Abrir archivosalida para escritura Mientras no se termine archivoentrada hacer leer(archivoentrada, caracter) si caracter= ( entonces mientras caracter<> ) hacer leer(archivo, caracter) sino escribir(archivosalida, caracter) cerrararchivos
Dra. Jessica Andrea Carballido
Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Pasaje de Parámetros Cuando comienza la ejecución de un programa en Pascal
Más detalles09/05/2018. Pasaje de Parámetros. Dra. Jessica Andrea Carballido. Manejo de memoria. Función o procedimiento?
Pasaje de Parámetros Cuando comienza la ejecución de un programa en Pascal se reservan una o más celdas en memoria para cada una de las variables globales (variables declaradas en el programa principal).
Más detallesDra. Jessica Andrea Carballido
Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Problema Diseño de la solución Dividir y conquistar Implementación de los
Más detallesDra. Jessica Andrea Carballido
Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Cuando la complejidad de los problemas aumenta, la tarea de hallar una solución
Más detallesDra. Jessica Andrea Carballido
Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Procesamiento Entrada y salida de Secuencias Archivo secuencial: * Sucesión
Más detallesProblema 3: Mercado. Dividir y conquistar
Problema 3: Mercado Dividir y conquistar En un supermercado se mantiene un archivo de texto productos.txt con la siguiente información de cada producto: COD nombre Precio Cada línea del archivo de texto
Más detallesNombre. lógico. físico. Nombre lógico. a 12. Nombre. program Archivos; var a: file of integer; begin assign(a, arch.dat ); end.
Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Procesamiento Entrada y salida de Secuencias Archivo secuencial: * Sucesión
Más detallesNombre. Nombre. físico. Nombre lógico. lógico. a 12. program Archivos; var a: file of integer; begin assign(a, arch.dat ); end.
Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Procesamiento Entrada y salida de Secuencias Archivo secuencial: * Sucesión
Más detallesResolución de Problemas y Algoritmos Segundo cuatrimestre 2015 Clase 11: Construcción de primitivas (Funciones)
Resolución de Problemas y Algoritmos Segundo cuatrimestre 2015 Clase 11: Construcción de primitivas (Funciones) Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la
Más detalles28/08/2018. Dra. Jessica Andrea Carballido. cuota monto/cantcuotas
PROBLEMA: A partir del monto de un crédito y la cantidad de cuotas se desea calcular el monto de cada cuota. Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Datos de entrada y de salida? Algoritmo ValorDeCuota
Más detallesDra. Jessica Andrea Carballido
Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar La Procesamiento Computadora de Secuencias Una computadora es un dispositivo electrónico que integra componentes físicos y lógicos. El hardware de una computadora
Más detallesIteración Diagrama de SINTAXIS: IF
VISION ESTATICA VISION DINAMICA Dra. Jessica Andrea Carballi jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Diagrama de SINTAXIS: IF Visión estática Diagrama
Más detallesDra. Jessica Andrea Carballido
Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR La recursividad es adecuada en problemas que reúnen las siguientes propiedades:
Más detallesResolución de Problemas y Algoritmos
CONSULTA RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS CAMBIA DE HORARIO LA CONSULTA DEL PROFESOR! DESDE LA SEMANA DEL 0/0 SERÁ LOS VIERNES A LAS 7HS EN EL NUEVO EDIFICIO DEL DCIC. CLASE Funciones definidas por
Más detalles24/8/2018. cuota monto/cantcuotas
PROBLEMA: A partir del monto de un crédito y la cantidad de cuotas se desea calcular el monto de cada cuota. Datos de entrada y de salida? Algoritmo ValorDeCuota DE: monto, cantcuotas (enteros) DS: cuota
Más detallesResolución de Problemas y Algoritmos
Resolución de Problemas y Algoritmos Sistemas Operativos Estadísticas (de web servers) Clase 8: Sistemas Operativos. Almacenamiento en Memoria. Archivos secuenciales en Pascal. Dr. Alejandro J. García
Más detallesIteración Diagrama de SINTAXIS: IF
VISION ESTATICA VISION DINAMICA Dra. Jessica Andrea Carballi jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Diagrama de SINTAXIS: IF estática Diagrama de
Más detallesDra. Jessica Andrea Carballido
Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Problemas, Algoritmos y Programas PROBLEMA Solución ALGORITMO PROGRAMA Problemas,
Más detallesDra. Jessica Andrea Carballido
Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Problemas, Algoritmos y Programas PROBLEMA Solución ALGORITMO PROGRAMA Problemas,
Más detalles14/03/2018. Problemas, Algoritmos y Programas. Problemas, Algoritmos y Programas. Programas y Lenguajes. Programas y Lenguajes. Programas y Lenguajes
Problemas, Algoritmos y Programas PROBLEMA Solución Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar ALGORITMO Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR PROGRAMA Problemas,
Más detallesApunte Laboratorio ALPI - El lenguaje de programación Pascal
Apunte Laboratorio ALPI - El lenguaje de programación Pascal 1 2 ÍNDICE GENERAL Índice 1. Estructura de un Programa en Pascal 3 2. Sintaxis de Pascal 4 2.1. Uso de mayúsculas.....................................
Más detallesTrabajo Práctico Nº 4 Iteración
Trabajo Práctico Nº 4 Iteración Ejercicio 1: Realice una traza y muestre la salida de cada secuencia de instrucciones. for i:= 0 to 0 do for i:= 1 to -1 do for i:= 1 downto 0 do Ejercicio 2: Escriba un
Más detallesResolución de Problemas y Algoritmos
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS CLASE 0 Archivos de texto para entrada y salida. Luciano H. Tamargo http://cs.uns.edu.ar/~lt Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional
Más detallesResolución de Problemas y Algoritmos Clase 6: Repetición (continuación)
Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación) Dr. http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca,
Más detalles28/10/2016. Procesamiento de Secuencias. Procesamiento de Secuencias. Procesamiento de Secuencias. Procesamiento de Secuencias
Un tipo particular de problemas para el cual resulta adecuada la iteración es el procesamiento de secuencias de valores. Dra. Jessica Andrea Carballi jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de
Más detallesMódulo 8: Primitivas en Pascal
Módulo 8: Primitivas en Pascal Tecnologías en la Educación Matemática Dr. Carlos Gonzalía DCIC - UNS Técnologías en la educación matemática Dr. Carlos Gonzalía 1 de Copyright Copyright 2010, 2012 M. Capobianco,
Más detallesResolución de Problemas y Algoritmos
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS CLASE 3 Definición y compatibilidad de tipos de datos. Sentencia condicional CASE. Luciano H. Tamargo http://cs.uns.edu.ar/~lt Depto. de Ciencias e Ingeniería de la
Más detalles21/03/2018. Variables y Constantes. Los datos de un programa están representados por variables o constantes y tienen asociado un tipo.
Variables y Constantes Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Los datos de un programa están representados por variables
Más detallesTipos y Estructuras de Control. Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR
Tipos y Estructuras de Control Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Datos: variables y constantes Tipos básicos: entero, real, char, lógico Estructuras de control
Más detallesMódulo 7: Sentencias de control en Pascal
Módulo 7: Sentencias de control en Pascal Tecnologías en la Educación Matemática Dr. Carlos Gonzalía DCIC - UNS Técnologías en la educación matemática Dr. Carlos Gonzalía 1 de Copyright Copyright 2010,
Más detallesResolución de Problemas y Algoritmos
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS CLASE Estructura de control condicional. Luciano H. Tamargo http://cs.uns.edu.ar/~lt Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur,
Más detalles6. Estructuras básicas de control 1. Pseudocódigo
6. Estructuras básicas de control 1 Acciones Pseudocódigo Slide 1 Estructuras de control Secuencia Selección simple (si... entonces... ) doble (si... entonces... si no... ) múltiple (según el caso... )
Más detallesTrabajo Práctico 7 Recursividad Versión 4
Trabajo Práctico 7 Recursividad Versión 4 Para los ejercicios que solicita resolver el problema recursivamente no puede utilizar, en esta materia, ninguna estructura repetitiva de las vistas anteriormente
Más detallesCOMPUTACIÓN I TEMA 5. Subprogramas o funciones. Alcance de variables. Pasaje de parámetros por valor. Prof. Mireya Morales
COMPUTACIÓN I TEMA 5. Subprogramas o funciones. Alcance de variables. Pasaje de parámetros por valor Prof. Mireya Morales CONTENIDO Instrucciones break y continue Importancia del uso de subalgoritmos o
Más detallesComponentes Básicos. InCo. InCo Componentes Básicos 1 / 28
Componentes Básicos InCo InCo Componentes Básicos 1 / 28 Modelo de Computación Vemos al computador como un procesador de datos. +------------+ Entrada ===> Computador ===> Salida +------------+ InCo Componentes
Más detallesDepartamento de Informática Universidad de Valladolid Campus de Segovia TEMA 1: RECURSIÓN
Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 1: RECURSIÓN ÍNDICE Definición Conceptos básicos Ejemplos recursivos Recursión mútua Recursión e iteración DEFINICIÓN Técnica
Más detallesRecursión. Recursión continuación
Recursión Recursión continuación Recursión Temas que veremos hoy Estructuras de control iterativas, repetitivas y la recursión. Ejemplos recursivos Búsqueda lineal Eficiencia y recursión Conclusiones Recursión
Más detallesAlgorítmica y Lenguajes de Programación. Ficheros
Algorítmica y Lenguajes de Programación Ficheros Ficheros. Introducción Un fichero es una unidad de información almacenada en disco a la que se asigna un identificador único. Los ficheros nos ofrecen la
Más detallesTRABAJO PRÁCTICO N 6 LENGUAJE PASCAL
TRABAJO PRÁCTICO N 6 LENGUAJE PASCAL En los casos en que considere necesario, divida el problema en subproblemas y justifique su decisión en implementarlos como procedimientos o como funciones. Ejercicio.
Más detallesTrabajo Práctico 6 Funciones, Procedimientos y División de Problemas
Trabajo Práctico 6 Funciones, Procedimientos y División de Problemas Ejercicio 1: Considere definida la función Invertir. function Invertir( num: integer ):integer; {Objetivo: Invierte el orden de los
Más detallesDepartamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 1
Resolución de Problemas y lgoritmos Dr. lejandro J. García 21/5/212 Resolución de Problemas y lgoritmos Clase 13 Lenguaje Pascal: estructura de bloques, entornos de referencia, visibilidad de identificadores.
Más detallesLaboratorio 5 Tema 7. Tipos de Datos Estructurados: Arreglos, Registros y Archivos
Laboratorio 5 Tema 7. Tipos de Datos Estructurados: Arreglos, Registros y Archivos PARTE 1. Arreglos Unidimensionales o Vectores Un arreglo es una estructura de datos conformada por una sucesión de celdas,
Más detallesSlide 1. ordenación de tres números en forma. creciente.
Slide 1 Slide 2 EsTriangulo := (a < b+c) and (b < a+c) and (c < a+b) ; EsEquilatero := (a = b) and (b = c); EsIsosceles := (a = b) and (a c) or (a = c) and (a b) or (b = c) and (a b); EsEscaleno
Más detallesFUNDAMENTOS DE PROGRAMACIÓN LABORATORIO SESIÓN 2
FUNDAMENTOS DE PROGRAMACIÓN LABORATORIO SESIÓN 2 EJERCICIO 1 VALIDACIÓN DE DATOS DE ENTRADA Modificar el programa del cálculo del MCD de dos números enteros positivos para validar los datos de entrada
Más detallesProgramación MODULAR: Subalgoritmos - funciones y procedimientos
Programación MODULAR: Subalgoritmos - funciones y procedimientos Uno de los métodos fundamentales para resolver un problema es dividirlo en problemas más pequeños, llamados subproblemas. Estos problemas
Más detallesTrabajo Práctico N 9 Recursividad
Trabajo Práctico N 9 Recursividad Ejercicio. Implemente en Pascal las siguientes definiciones recursivas. a) h ( N) h( N ) h( N ), N, N 0 0 b) 0 g ( x, z) 0 g( x, z ), x 0, z 0, ( x 0) y ( z 0) c) f (
Más detallesDonde Condicion es una expresión booleana, es decir, que puede tomar el valor verdadero (true) o falso (false).
SETECIA REPETITIVA (SETECIA WHILE) Condicion while do Sentencia Donde Condicion es una expresión booleana, es decir, que puede tomar el valor verdadero (true) o falso (false). Valores
Más detallesEstructuras de Programación
Apunte del curso ALGORITMOS y PROGRAMACIÓN (FI-UBA, Prof. Ing. F. J. LAGE, J. T. P. Ing. Z. CATALDI; A.T.P. Srta. A Pauluzzi, Sr. C Corradino, Sr. F Gómez Estructuras de Programación Todo programa puede
Más detalles8.1.- FUNCIONES Y PROCEDIMIENTOS DEFINIDOS POR EL USUARIO EN TURBO PASCAL.
8.1.- FUNCIONES Y PROCEDIMIENTOS DEFINIDOS POR EL USUARIO EN TURBO PASCAL. PROCEDIMIENTOS. CONCEPTO Un procedimiento es un programa que realiza una tarea específica. Puede recibir cero o más valores del
Más detallesTrabajo Práctico 8 División de Problemas en Subproblemas Uso de Procedimientos y Funciones
Ejercicio 1: Considere definida una función. Trabajo Práctico 8 División de Problemas en Subproblemas Uso de Procedimientos y Funciones function Invertir(Num: integer):integer; { Objetivo: Invierte el
Más detallesFicheros. Introducción. Apertura y cierre de ficheros
s Introducción Podemos deir un fichero o archivo como una unidad de información almacenada en memoria secundaria, un disco, a la que se asigna un identificador único; los ficheros nos ofrecen la posibilidad
Más detallesInicio del programa. Entrada de datos. Proceso de datos. Salida de datos. Fin del programa
PROGRAMACIÓN 10. Prof. Dolores Cuiñas H. Recuerde que estos son apuntes muy simplificados que deberá completar con la bibliografía recomendada APUNTES Nº 4 ESTRUCTURA SECUENCIAL GENERAL La estructura secuencial
Más detallesUnidades en PASCAL (Units)
Programación II - Prof. Alejandro H. Gonzalez - 1 Unidades en PASCAL (Units) Aquellos que quieran probar los ejercicios de TAD en Pc pueden utilizar las UNITS de Pascal. En este documento se explican los
Más detallesProgramación modular en Pascal
Programación modular en Pascal Programación modular Es una técnica para escribir programas grandes y complejos Se basa en subdividir el programa en secciones más simples. Cada sección se llama módulo y
Más detallesUniversidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 1: Recursividad. Prof. Montserrat Serrano Montero
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 1: Recursividad Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Ejemplos recursivos Recursividad
Más detallesArreglos y Subrangos
Arreglos y Subrangos Programación 1 InCo - FING Contents 1 Tipo subrango 2 1.1 Subrangos de enteros......................... 2 1.2 Subrangos de caracteres....................... 2 1.3 Operaciones con subrangos.....................
Más detallesPrimer Cuatrimestre 2018 Resolución de Problemas y Algoritmos
Lenguaje de Diseño Primer Cuatrimestre 2018 Resolución de Problemas y Algoritmos 1 Programación Modular Programación Estructurada Programas fáciles de leer y modificar Técnicas de Diseños Dividir y Conquistar
Más detallesDiseño Computarizado 15023
Diseño Computarizado 15023 PROGRAMACIÓN: FORTRAN Profesor: Claudio García Herrera Departamento de Ingeniería Mecánica Universidad de Santiago de Chile Índice 1 Introducción 2 Estructura 3 Sentencias y
Más detallesIntroducción a la Programación
0,25 puntos cada pregunta 1. Observa el siguiente esquema de código. Cuándo se ejecuta Instrucción4? IF Condición1 THEN Instrucción1 ELSE IF Condición2 THEN Instrucción2 ELSE IF Condición3 THEN Instrucción3;
Más detallesResolución de Problemas y Algoritmos
esolución de Problemas y Algoritmos PAÁMETOS ESOLUIÓN DE POBLEMAS Y ALGOITMOS si corresponde a un parámetro formal por valor, puede ser una de estas tres opciones: y debe ser de tipo asignación- LASE 6
Más detalles9. Subprogramas: Procedimientos 1. TEMA 9: Subprogramas: Procedimientos
9. Subprogramas: Procedimientos 1 TEMA 9: Subprogramas: Procedimientos Índice Slide 1 9.1. Procedimientos...................... 1 9.2. Parámetros y argumentos................. 10 9.2.1. Paso por valor..................
Más detallesSintaxis de PSeInt Tutorial
Sintaxis de Tutorial Introducción a la Programación (T.U.M - T.U.G. - T.U.E. - T.U.T. - Prof) Introducción a la Computación (T.U.R. - T.U.W.) Fundamentos de la Informática (Ing. en Minas - Ing. Electr.)
Más detallesMódulo 4: Algoritmos como primitivas
Módulo 4: Algoritmos como primitivas Tecnologías en la Educación Matemática Dr. Carlos Gonzalía DCIC - UNS Técnologías en la educación matemática Dra. Marcela Capobianco 1 de Copyright Copyright 2012 M.
Más detallesLENGUAJE FORTRAN. FUNCIONES Y SUBRUTINAS
LENGUAJE FORTRAN. FUNCIONES Y SUBRUTINAS Programación en Fortran Valentín Moreno ÍNDICE 1. Subprogramas 2. Funciones 3. Subrutinas 2 3 1. SUBPROGRAMAS 1. SUBPROGRAMAS Si necesitamos usar con frecuencia
Más detallesEn el siguiente ejemplo se declara un registro y luego variables de ese tipo de registro:
LABORATORIO #6 (Parte I y II) REGISTROS Y ARCHIVOS Parte I: Registros Un registro es una estructura de datos formado por un conjunto de elementos llamados campos, no necesariamente del mismo tipo y que
Más detallesEnteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal.
LENGUAJE DE PROGRAMACIÓN TURBO PASCAL El lenguaje de programación de alto nivel Pascal fue diseñado el 1968 por Niklaus Wirth con una finalidad eminentemente pedagógica El 1983, el Pascal fue estandarizado
Más detallesEjemplo: Paso de polares a cartesianas en el plano. f : [0, ) [0, 2π) R R. coordx : [0, ) [0, 2π) R. coordy : [0, ) [0, 2π) R
Ejemplo: Paso de polares a cartesianas en el plano f : [0, ) [0, 2π) R R (r, z) (rcos(z), rsin(z)) Slide 1 Primera solución : usar 2 funciones : coordx : [0, ) [0, 2π) R (r, z) rcos(z) coordy : [0, ) [0,
Más detallesTema 3. Estructuras de control
Tema 3. Estructuras de control 3.1. Secuencial 3.2. Selección 3.3. Repetición 2 Objetivos Objetivos del tema: Conocer y saber la utilidad de las tres estructuras de control (secuencial, alternativa y repetitiva)
Más detallesManual de turbo pascal
Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de
Más detallesAhora responde a las siguientes cuestiones: Supongamos que el usuario introduce 3 en A, 4 en B y 5 en C
Bioinformática. 1. Observa la siguiente secuencia de instrucciones: 1. A = 5; 2. B = 7; 3. C = 2; 4. A=A+B+C; 5. B=C/2; 6. A=A/B+A ˆ C; 7. Escribe A; a) Qué valor contiene A después de la cuarta instrucción?
Más detallesPráctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros
Práctica 3. Paso de parámetros entre subrutinas 1. Objetivo de la práctica El objetivo de esta práctica es que el estudiante se familiarice con la programación en ensamblador y el convenio de paso de parámetros
Más detallesSOFTWARE Microsoft Visual Studio 2005.NET FrameWork 2.0
OBJETIVOS! ""# $% % REQUERIMIENTOS SOFTWARE Microsoft Visual Studio 2005.NET FrameWork 2.0 DESCRIPCIÓN En este tutorial se va a revisar la forma de trabajar con los conceptos de OO en Visual Basic.NET.
Más detallesTrabajo Práctico Nº 5 Repetición y Archivos
Trabajo Práctico Nº 5 Repetición y Archivos Ejercicio 1: Escriba un programa en Pascal que solicite al usuario tres números naturales que llamaremos A, B, y N. Como resultado se deberá mostrar por pantalla
Más detallesINSTITUTO NACIONAL SUPERIOR DEL PROFESORADO TÉCNICO - TÉCNICO SUPERIOR EN INFORMÁTICA APLICADA - PROGRAMACIÓN I
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS La principal razón para que las personas aprendan lenguajes de programación es utilizar una computadora como una herramienta para la resolución de problemas. Cinco
Más detallesAsumiremos que se dispone de procedimientos para leer y escribir caracteres. Se desarrollan algunas funciones primitivas que nos serán útiles.
26. Representación de números. Conversiones 26.1. Representación y conversión. Los números son representados internamente, en un computador digital, en sistema binario. Externamente se representan mediante
Más detallesModularización en lenguaje C. Funciones
Modularización en lenguaje C Funciones Segundo Cuatrimestre 2016 F. de la Informática- Int.a la Computación - Int.a la Programación 1 Ejercicio: Dado el siguiente algoritmo incompleto codificado en Lenguaje
Más detalles'type' <nombre conjunto> '=' 'SET OF' <tipo base>
20. CONJUNTOS. SET. 20.1. Valores. Un tipo de datos especifica el conjunto de valores que una variable de ese tipo puede adoptar. El tipo conjunto es estructurado a partir de un tipo base; el tipo base
Más detallesFicheros conceptos. Manejo de ficheros en C. Apertura del fichero Función fopen: nombre del fichero. Apertura del fichero Función fopen
Fundamentos de Informática. Dpto. de ATC - Página 1 de 8 conceptos Manejo de ficheros en C Contienen los datos que se almacenan en dispositivos de almacenamiento masivo: disquetes, discos duros, DROM,
Más detallesLa resolución de problemas es una tarea únicamente humana comprobable en todos los casos con los mismos resultados.
Pseudocódigo Introducción La importancia de sistematizar procesos y crear programas de cómputo radica esencialmente en que estos se puedan utilizar como resolución de problemas similares en muchos casos,
Más detallesUna clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación:
Clase teórica 2 Algoritmos en C Página 1 de 6 TIPOS DE DATOS Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación: Por el momento nuestro
Más detallesFicheros. Archivo, o fichero: Características:
Ficheros Archivo, o fichero: Es una estructura de datos en memoria externa, cuyo tiempo de vida no está ligado a la ejecución del programa que lo crea o lo maneja. Un fichero existe desde que un programa
Más detallesIntroducción al lenguaje C
Introducción al lenguaje C Programación 2 Instituto de Computación, Facultad de Ingeniería, Universidad de la República, Uruguay 2 de marzo de 2016 Programación 2 Introducción al lenguaje C 2 de marzo
Más detallesFUNDAMENTOS DE PROGRAMACIÓN. 1º ING. INFORMÁTICA (Plan 2000) 2ª Convocatoria. 21 de junio de 2001
FUNDAMENTOS DE PROGRAMACIÓN. 1º ING. INFORMÁTICA (Plan 2000) 2ª Convocatoria. 21 de junio de 2001 NORMAS DE EXAMEN: (1) La calificación la asignatura depende exclusivamente de este examen; (2) Todas las
Más detallesEstructura de Datos: Archivos
Estructura de Datos: Archivos Registros (record) Un registro es una estructura que consiste de un número fijo de componentes llamados campos. Los campos pueden ser de diferentes tipos y deben tener un
Más detallesESTRUCTURA SECUENCIAL ESTRUCTURA SELECTIVA
ESTRUCTURA SECUENCIAL Es aquélla en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta
Más detallesProf. María Alejandra Quintero. Informática Año
Prof. María Alejandra Quintero Informática Año 2014-2015 Es la acción de escribir programas de computación con el objetivo de resolver un determinado problema. Implica escribir instrucciones para indicarle
Más detallesARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES
ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES TEMAS Recorrido de un árbol Máximo y mínimo Búsqueda de un elemento Borrado de un nodo 3 Características ARBOLES - CONCEPTOS Cada elemento del árbol
Más detallesSe debe disponer sobre la mesa un documento de identificación con fotografía.
Examen escrito de Programación 1. Miércoles 31 de enero de 2018 Se debe disponer sobre la mesa un documento de identificación con fotografía. Se debe comenzar a resolver cada uno de los problemas del examen
Más detallesRepaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)
Repaso Lenguaje C OBJETOS Variables Constantes Variable: objeto del ambiente cuyo contenido puede cambiar. Constante: objeto cuyo contenido no puede cambiar. Variables: - un nombre que la identifica. Deben
Más detallesLISTADO DE PROBLEMAS TRIMESTRE 1
TIC BACH2-1 LISTADO DE PROBLEMAS TRIMESTRE 1 1. Escribir un algoritmo que lea un número y escriba su cuadrado. 2. Realizar el algoritmo de un programa que lea dos números y muestre la suma de ambos. 3.
Más detallesPráctico Nº 7 Tema: Lenguaje de Diseño (Parte 3). Subalgoritmos
Práctico Nº 7 Tema: Lenguaje de Diseño (Parte 3). Subalgoritmos Nota: En todos los casos en que se pida el desarrollo de un algoritmo y/o subalgoritmo, se debe escribir la solución expresada en lenguaje
Más detallesDepartamento de Informática Universidad de Valladolid Campus de Segovia. TEMA 4: TIPOS ABSTRACTOS DE DATOS (TADs)
Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 4: TIPOS ABSTRACTOS DE DATOS (TADs) TIPOS ABSTRACTOS DE DATOS (TADs) Introducción Un contraejemplo completo Metodología de la
Más detallesLicenciatura de Matemáticas Informática I Notación algorítmica - Descripción BNF
Licenciatura de Matemáticas Informática I Notación algorítmica - Descripción BNF Dpto. Informática Noviembre 1998 1. Deniciones en forma BNF < > Símbolos no terminales. Declaraciones u objetos declarados
Más detallesApunte de cátedra: Ordenación de Arreglos
Facultad de Ciencias Exactas, Ingeniería y Agrimensura (U.N.R.) Escuela de Ciencias Exactas y Naturales Departamento de Matemática Cátedra: Computación (L.M. - P.M.) Prof. responsable: Mgr. María del Carmen
Más detalles1. Lenguaje Pascal. 2. Módulos de un Programa. 3. Tipos de Datos más utilizados. 4. Declaración de Variables
1. Lenguaje Pascal Se procederá a la comparación de las estructuras de programación utilizadas en pseudocódigo con las respectivas en lenguaje Pascal. Para ello, se seguirá de manera análoga a la descripción
Más detallesEstructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa
Contenido Estructura de un programa en Java... 2 Tipos de datos básicos... 2 Operadores... 3 Literales... 4 Entrada / Salida... 4 Sentencias condicionales... 5 Funciones... 5 Ejercicios... 6 Variables,
Más detallesProgramación Estructurada
Programación Estructurada Técnica de programación que consiste en construir programas de fácil comprensión. Es mucho más sencillo entender la codificación del programa, que se habrá hecho en diferentes
Más detalles