Introduc)on to Programming (in C++) Ejemplos de tratamiento de secuencia de secuencias. Emma Rollón Departament of Computer Science



Documentos relacionados
Fundamentos de la programación

Programación 1 Tema 3. Información, datos, operaciones y expresiones

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

Estructuras de repetición

Introducción a las sentencias de control

1. Juego del Ahorcado

324 MR Versión 1 Prueba Integral 1/3 Semana 10 Lapso

Programación 1 Problemas del Composición condicional

Funciones II. Fundamentos de Programación Fundamentos de Programación I

Programación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas

Ejercicios De Programación De C++ Algoritmos. Lenguaje De Programación C++:

Programación 1 Tema 5. Instrucciones simples y estructuradas

EJEMPLOS DE EJERCICIOS RESUELTOS

TEMA 4: Programación estructurada

Programación 1 Problemas 3. Composición condicional

MINI ENSAYO DE MATEMÁTICA Nº 1

Prof. Dr. Paul Bustamante

Programación 1. Tema V Clase de problemas. Desarrollo de un módulo de biblioteca C++ para trabajar con conjuntos de letras

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS

VGOC"6<"Rtqitcocekôp"guvtwevwtcfc

Fundamentos de la programación

Introducción rápida a la programación (estructurada ) con C++

Introducción a C++ Algoritmos y Estructuras de datos II Dra. Carmen Mezura Godoy. Febrero 2009

Programación 2. Grado en Estadística Aplicada. Curso Generación de números pseudoaleatorios. Manejo de ficheros de texto.

Funciones: Pasos por Referencia Recursividad

Programación 1 Tema 5. Instrucciones simples y estructuradas

Programación 2. Lección 4. Metodología de diseño de algoritmos recursivos

Preliminares: programación con C++

Funciones I. Fundamentos de Programación Fundamentos de Programación I

Tema 4: Estructuras de Control Estructura y Contenidos

Programación: Estructuras de Control

Examen escrito de Programación 1

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

Programación 1 Tema 13. Entrada y salida de datos

Curso 0 de Informática

Programación 1 Tema 7. Desarrollo modular y descendente de programas

Funciones. Parámetros por valor

Objetivos de la práctica: - Trabajar las estructuras de control repetitivas en la realización de programas.

Programación 1 Desarrollo de proyectos de programación. Desarrollo de un módulo C++ de biblioteca para trabajar con conjuntos de letras

Listas y Recursión. Taller de Álgebra I. Primer Cuatrimestre de 2015

Sentencias de Control en C++

Ejercicios entrada-salida

Prof. Dr. Paul Bustamante

Estructuras de control y DFDs

Programación 1 Desarrollo de proyectos de programación. Desarrollo de un módulo C++ de biblioteca para trabajar con conjuntos de letras

ALMACENAMIENTO PERSISTENTE DE DATOS

int int. 1622

Estructuras de Control 3

Estructuras de repetición hacer-mientras y repita hasta

Programación 1 Tema 15. Trabajo con ficheros binarios

Fundamentos de Programción (I)

Estructuras de control Agosto de Facultad de Ingeniería. Universidad del Valle

Programación 1 Tema 12. Algoritmos básicos de trabajo con estructuras de datos indexadas

Esquemas algorítmicos de un nivel

EXAMEN DE PRÁCTICA. 2. Cuál es el resultado de que debe aparecer en la celda B10 si se tienen los siguientes datos:

TEMA 6: Tipos de datos estructurados

Programación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas

Programación 1 Tema 15. Trabajo con ficheros binarios

Programación 1 Tema III Clase de problemas. Diseño de algoritmos que extraen información de ficheros de texto (1)

= RETURN =3 7-. ELSE K

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS

Tema 4: Definición de funciones

Tema 4: Definición de funciones

E/S POR CONSOLA DE C++ Parte I. Elementos Básicos Dr. Oldemar Rodríguez R.

Estructuras de Repetición (Hacer-Mientras)

Estructuras de control. Dept. Ciencias de la Computación e I.A. Universidad de Granada

Prof. Dr. Paul Bustamante

Ficheros: texto y binarios

Parte 1. Input. Output. Input. Output

Hoja de ejercicios del Tema 3

Hoja de ejercicios del Tema 3

Programación 1 Tema 12. Algoritmos básicos de trabajo con estructuras de datos indexadas

Clase 2: Tipos de Datos y Condiciones. Profesora de Cátedra: Jocelyn Simmonds

IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++

ESTRUCTURAS REPETITIVAS

FUNDAMENTOS DE PROGRAMACIÓN. 1º ING. INFORMÁTICA (Plan 2000) 1ª Convocatoria. 21 de Enero de 2002

Técnicas Informáticas PRÁCTICA 7 Curso PRÁCTICA 7: Cadenas y Estructuras.

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática

Tema: Arreglos de Objetos en C++.

Estructuras de Selección, armado de Equipos, y Trabajo #1.

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2

Introducción al Testing de Estructural

Complejidad de Algoritmos

Una lista de operadores que pueden o no sobrecargarse es la siguiente: Operadores que pueden sobrecargarse

Programación I. Contenido. Relación de Ejercicios y Soluciones Sonido e Imagen

Introducción a C# y la plataforma.net. Pablo Zaidenvoren 2013

Práctica 8: Barreras

Manejo de archivos en C++

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL

Programación 1 Tema 4. Diseño de programas elementales

UTN FRBA Algoritmos y Estructura de Datos Examen Final 13/02/2015. Apellido y nombre: Legajo: Cursó con Prof:

Palabras reservadas de C++ y C. Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones.

1. Hacer un programa que muestre los múltiplos de 5 comprendidos entre 200 y 300. Iniciar el contador en Calcular el acumulado de las edades

Programación 1. Tema II. Diseño de los primeros programas. Lección 4. Diseño de algunos programas elementales

Tema 3. Estructuras de control en C++

Ejercicios de Repaso

Introducción a la computación. Carlos Lopez Pombo

Transcripción:

Introduc)on to Programming (in C++) Ejemplos de tratamiento de secuencia de secuencias Emma Rollón Departament of Computer Science

Ejemplo 1: recorrido con recorrido Input: La entrada consiste en un número n, y n líneas. Cada línea es una secuencia de números naturales acabada en - 1. Output: Para cada línea, escribir su suma. E: 2 S: 24 4 5 7 8-1 11 9 2-1 2

Ejemplo 1: recorrido con recorrido E: 2 4 5 7 8-1 9 2-1 Input: Secuencia de línias (los elementos son línias!) de la que nos dan a priori su número de elementos: E: 2 línia 1 línia 2 elemento 1 elemento 2 Cada elemento (i.e., cada línia), es una secuencia con cen)nela: elemento 1: 4 5 7 8-1 elemento 2: 9 2-1 3

Ejemplo 1: recorrido con recorrido int n; cin >> n; // Leemos el número de elementos de la sec (= línias) // Inv: Se han tratado i línias for (int i = 0; i < n; ++i) { int suma = 0; // Inv: suma es la suma de todos los elems tratados while (x!= -1) { suma += x; // Se han tratado todos los elementos de la línea cout << suma << endl; 4

Ejemplo 1: recorrido con recorrido Input: La entrada consiste en una secuencia de líneas. Cada línea es una secuencia de números naturales acabada en - 1. Output: Para cada línea, escribir su suma. E: 4 5 7 8-1 S: 24 9 2-1 11 5

Ejemplo 1: recorrido con recorrido // Inv: Se han tratado las línias anteriores while (cin >> x) { int suma = 0; // Inv: suma es la suma de todos los elems tratados while (x!= -1) { suma += x; // Se han tratado todos los elementos de la línea cout << suma << endl; 6

Ejemplo 2: búsqueda con recorrido Input: La entrada consiste en un número n, y n líneas. Cada línea es una secuencia de números naturales acabada en - 1. Output: Escribir el número de línia de la primera cuya suma de elementos sea par o No existeix cap si no hay ninguna que cumpla esa propiedad. E: 2 S: 1 4 5 7 8-1 9 2-1 7

Ejemplo 2: búsqueda con recorrido int n; cin >> n; // Leemos el número de elementos de la sec (= línias) bool found = false; int i = 0; // Inv: Se han tratado i línias // found indica si hay alguna línia par o no en las i línias tratadas while (not found and i < n) { int suma = 0; // Inv: suma es la suma de todos los elems tratados while (x!= -1) { suma += x; // Se han tratado todos los elementos de la línea if (suma%2 == 0) found = true; ++i; if (found) cout << i << endl; else cout << No existeix cap << endl; 8

Ejemplo 3: recorrido con búsqueda Input: La entrada consiste en un número n, y n líneas. Cada línea es una secuencia de números naturales acabada en - 1. Output: Decir cuántas línias están formadas únicamente por números pares. E: 2 S: 0 4 5 7 8-1 9 2-1 9

Ejemplo 3: recorrido con búsqueda int n; cin >> n; // Leemos el número de elementos de la sec (= línias) int n_lin = 0; // Inv: Se han tratado i línias // n_lin es el número de linias tratadas cuyos elems son todos pares for (int i = 0; i < n; ++i) { bool par = true; // Inv: par es true si los elems tratados son todos pares while (par and x!= -1) { if (x%2 == 1) par = false; // par es false o se ha leído el centinela if (par) n_lin++; cout << n_lin << endl; 10

Ejemplo 3: recorrido con búsqueda int n; cin >> n; // Leemos el número de elementos de la sec (= línias) int n_lin = 0; // Inv: Se han tratado i línias // n_lin es el número de linias tratadas cuyos elems son todos pares for (int i = 0; i < n; ++i) { bool par = true; // Inv: par es true si los elems tratados son todos pares while (par and x!= -1) { if (x%2 == 1) par = false; // par es false o se ha leído el centinela if (par) n_lin++; cout << n_lin << endl; La ejecución para el ejemplo de entrada es correcta?? 11

Ejemplo 3: recorrido con búsqueda int n; cin >> n; // Leemos el número de elementos de la sec (= línias) int n_lin = 0; // Inv: Se han tratado i línias // n_lin es el número de linias tratadas cuyos elems son todos pares for (int i = 0; i < n; ++i) { bool par = true; // Inv: par es true si los elems tratados son todos pares while (x!= -1) { if (x%2 == 1) par = false; // Se han tratado todos los elementos de la línea if (par) n_lin++; cout << n_lin << endl; Ojo: se han de consumir todos los elems de la subsecuencia 12

Ejemplo 4: búsqueda con búsqueda Input: La entrada consiste en un número n, y n líneas. Cada línea es una secuencia de números naturales acabada en - 1. Output: Decir el número de línia de la primera que )ene algún elemento impar o No existeix cap en caso que ninguna cumpla la propiedad. E: 2 S: 1 4 5 7 8-1 9 2-1 13

Ejemplo 4: búsqueda con búsqueda int n; cin >> n; // Leemos el número de elementos de la sec (= línias) bool found = false; int i = 0; // Inv: Se han tratado i línias // found indica si hay alguna línia con algún elem impar en las i línias tratadas while (not found and i < n) { bool impar = false; // Inv: impar es false si todos los elems tratados son pares while (not impar and x!= -1) { if (x%2 == 1) impar = true; // impar es true o se han tratado todos los elementos de la línea found = impar; ++i; if (found) cout << i << endl; else cout << No existeix cap << endl; 14

Ejemplo 4: búsqueda con búsqueda int n; cin >> n; // Leemos el número de elementos de la sec (= línias) bool found = false; int i = 0; // Inv: Se han tratado i línias // found indica si hay alguna línia elems impares en las tratadas while (not found and i < n) { // Inv: found es false si todos los elems tratados son pares while (not found and x!= -1) { if (x%2 == 1) found = true; // found es true o se han tratado todos los elementos de la línea ++i; if (found) cout << i << endl; else cout << No existeix cap << endl; 15