4A4A4A4A Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Luis Hernández Yáñez Facultad de Informática.

Slides:



Advertisements
Presentaciones similares
Introducción a C++ Sistemas Operativos
Advertisements

Ordenamiento de Arreglos
Searching data in Arrays COMP 242. Linear Search Algoritmo: Comenzando con el primer elemento, se compara cada uno con el valor a buscar y se detiene.
Arithmetic Operators & Operators Precedence
Ejemplo de un programa en C++ donde se manipulan archivos de datos
8 Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Luis Hernández Yáñez Facultad de Informática Universidad.
6 Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Luis Hernández Yáñez Facultad de Informática Universidad.
Ejemplo de Programa C++
Informática II Clase 12: Flujos Diego Fernando Serna Restrepo
Computadoras y programación
7A7A7A7A Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Luis Hernández Yáñez Facultad de Informática.
LOGROS DEL PERÍODO Utiliza de forma correcta las funciones para entrada y salida de datos en c++. Utiliza los elementos básicos de un programa en c++.
Programacion de Computadora Prof. Obadiah Oghoerore.
7 Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Luis Hernández Yáñez Facultad de Informática Universidad.
6 Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Luis Hernández Yáñez / Pablo Moreno Ger Facultad.

9A9A9A9A Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Luis Hernández Yáñez Facultad de Informática.
8A8A8A8A Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Luis Hernández Yáñez Facultad de Informática.

INFORMATICA I Funciones CLASE 13.
3 Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Luis Hernández Yáñez Facultad de Informática Universidad.
8 Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Luis Hernández Yáñez Facultad de Informática Universidad.
Prof. Franklin Cedeño. FUNCIONES EN C++ Cuando tratamos de resolver un problema, resulta muy útil utilizar la filosofía de “divide y vencerás”. Esta estrategia.
ESTRUCTURAS DE SECUENCIA
Introducción a la Computación
SOBRECARGA DE FUNCIONES
Acciones y funciones Concepto
5A5A5A5A Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Luis Hernández Yáñez/Pablo Moreno Ger Facultad.
Chapter 7 Functions Dale/Weems/Headington. 2 Tópicos Capítulo 7 l Writing a Program Using Functional Decomposition l Writing a Void Function for a Task.
LIA. SUEI CHONG SOL, MCE.. #include void main() { float N1,N2,N3,SUMA; cout>N2;
Grado en Ingeniería electrónica y comunicaciones Facultad de Físicas Universidad Complutense P1 Fundamentos de Programación.
Estructuras de Control de Repetición
Introducción a la Computación
Sección 5-2 Estructuras de Control de Decisión Expresiones Lógicas.
Concepto de tupla Las tuplas son estructuras de datos que constan de varios campos que pueden contener datos de tipos distintos. El acceso al contenido.
4 Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Luis Hernández Yáñez Raquel Hervás Ballesteros Facultad.
4 Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Luis Hernández Yáñez Facultad de Informática Universidad.
Cátedra de COMPUTACIÓN FACULTAD DE INGENIERÍA - UNA La mejor manera de aprender Programación es PROGRAMANDO !!!!!! CLASE Nro. 1.
Elaborado por Fernando Torre - Universidad Simón Bolívar ARREGLOS CI Computación I Universidad Simón Bolívar Dpto. de Computación y Tecnología de.
TABLAS Definición. El tipo tabla permite definir objetos formados por un conjunto de elementos del mismo tipo. Ejemplos. El tipo tabla se utiliza para.
Preparado por: Nelliud D. Torres Enero/2003 Versión 1.0
Computación II Unidad IX Flujos y archivos. Presentación de la unidad Objetivos: –Comprender como utilizar el flujo de entrada y salida en C++ –Comprender.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 2- 1.
Administración de Proyectos de desarrollo de Software Ciclo de vida de un proyecto Enfoque moderno Temas Componentes Directivas Declaraciones globales.
INTRODUCCION. LOS LENGUAJES DE PROGRAMACIÓN Los lenguajes de programación herramientas que nos permiten crear programas y software. EL LENGUAJE DE MAQUINA.
Entrada y Salida de Archivos
Elementos básicos del lenguaje
Unidad II Introducción a la programación en C++
1 Unidad IV Archivos en Java y C++ M.C. Juan Carlos Olivares Rojas.
1 Algunas ideas básicas de C++ Agustín J. González ELO-320.
Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad.
Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
3A3A3A3A Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Luis Hernández Yáñez Facultad de Informática.
Algoritmo.
Arreglos Ejemplo paso a paso. Planteamiento Como estudiante de ingeniería, quieres usar tus habilidades de programador para llevar un registro de tus.
ARREGLOS O ARRAYS.
ESTRUCTURAS DE DECISION MULTIPLE
Fundamentos de Ingeniería de Software Facultad de Ingenieria Universidad Distrital Francisco José de Caldas PROGRAMACION ORIENTADA A OBJETOS Asignatura:
UNIVERSIDAD DIEGO PORTALES Facultad de Ingeniería Programación Avanzada HERENCIA Tema: HERENCIA Ing. Javier Chamorro Cerón.
Lic. Xóchitl minerva García cruz
Algunas ideas básicas de C++
Nociones básicas sobre C++
Uso de Archivos de Datos en C++
Nociones básicas sobre C++
++
Algunas ideas básicas de C++
Lic. Xóchitl minerva García cruz
Transcripción de la presentación:

4A4A4A4A Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Luis Hernández Yáñez Facultad de Informática Universidad Complutense Fundamentos de la programación

Luis Hernández Yáñez Fundamentos de la programación: La abstracción procedimental (Anexo) Archivos como parámetros498 La función main() 501 Argumentos implícitos504 Sobrecarga de subprogramas508

Luis Hernández Yáñez Página 498 Fundamentos de la programación: La abstracción procedimental (Anexo)

Luis Hernández Yáñez #include #include using namespace std; #include #include void sumatorio_archivo(ifstream &arch, double &suma); int main() { double resultado; double resultado; ifstream archivo; ifstream archivo; archivo.open("datos.txt"); archivo.open("datos.txt"); if (!archivo.is_open()) { if (!archivo.is_open()) { cout << "ERROR DE APERTURA" << endl; cout << "ERROR DE APERTURA" << endl; } else { else { sumatorio_archivo(archivo, resultado) sumatorio_archivo(archivo, resultado) cout << "Suma = " << resultado << endl; cout << "Suma = " << resultado << endl; archivo.close(); archivo.close(); } return 0; return 0;} Página 499 Fundamentos de la programación: La abstracción procedimental (Anexo)

Luis Hernández Yáñez void sumatorio_archivo(ifstream &arch, double &suma) { double dato; double dato; suma = 0; suma = 0; arch >> dato; arch >> dato; while (dato != -1) { while (dato != -1) { suma = suma + dato; suma = suma + dato; arch >> dato; arch >> dato; }} Página 500 Fundamentos de la programación: La abstracción procedimental (Anexo)

Luis Hernández Yáñez Página 501 Fundamentos de la programación: La abstracción procedimental (Anexo)

Luis Hernández Yáñez Comunicación con el sistema operativo Parámetros opcionales de la función main() : int main(int argc, char *argv[]) Para obtener datos proporcionados al ejecutar el programa: C:\>prueba cad1 cad2 cad3 Ejecuta prueba.exe con tres argumentos (cadenas) Parámetros de main() : — argc : número de argumentos que se proporcionan 4 en el ejemplo (primero: nombre del programa con su ruta) — argv : array con las cadenas proporcionadas como argumentos Página 502 Fundamentos de la programación: La abstracción procedimental (Anexo)

Luis Hernández Yáñez ¿Cómo ha ido la función? La función main() devuelve al S.O. un código de terminación — 0 : Todo OK — Distinto de 0 : ¡Ha habido un error! Si la ejecución llega al final de la función main(), todo OK: return 0; // Fin del programa return 0; // Fin del programa} Página 503 Fundamentos de la programación: La abstracción procedimental (Anexo)

Luis Hernández Yáñez Página 504 Fundamentos de la programación: La abstracción procedimental (Anexo)

Luis Hernández Yáñez Valores predeterminados para parámetros por valor Valor por defecto para un parámetro: Tras un = a continuación del nombre del parámetro: void proc(int i = 1); Si no se proporciona argumento, el parámetro toma ese valor proc(12);i toma el valor explícito 12 proc();i toma el valor implícito ( 1 ) Sólo puede haber argumentos implícitos en los parámetros finales: void p(int i, int j = 2, int k = 3); // CORRECTO void p(int i = 1, int j, int k = 3); // INCORRECTO Página 505 Fundamentos de la programación: La abstracción procedimental (Anexo) Una vez asignado un valor implícito, todos los que siguen han de tener también valor implícito

Luis Hernández Yáñez Parámetros y argumentos implícitos void p(int i, int j = 2, int k = 3); Se copian los argumentos en los parámetros del primero al último  los que no tengan correspondencia tomarán los implícitos void p(int i, int j = 2, int k = 3);... p(13); // i toma 13, j y k sus valores implícitos p(13); // i toma 13, j y k sus valores implícitos p(5, 7); // i toma 5, j toma 7 y k su valor implícito p(5, 7); // i toma 5, j toma 7 y k su valor implícito p(3, 9, 12); // i toma 3, j toma 9 y k toma 12 p(3, 9, 12); // i toma 3, j toma 9 y k toma 12 Página 506 Fundamentos de la programación: La abstracción procedimental (Anexo) Los argumentos implícitos se declaran en el prototipo (preferible) o en la cabecera del subprograma, pero NO en ambos

Luis Hernández Yáñez #include #include using namespace std; double f(double x, double y, int signo = 1, double delta = 1.0); int main() { double x, y; double x, y; cout << "X = "; cout << "X = "; cin >> x; cin >> x; cout << "Y = "; cout << "Y = "; cin >> y; cin >> y; cout << "signo y delta por defecto: " << f(x, y) << endl; cout << "signo y delta por defecto: " << f(x, y) << endl; cout << "signo -1 y delta por defecto: " << f(x, y, -1) << endl; cout << "signo -1 y delta por defecto: " << f(x, y, -1) << endl; cout << "signo y delta concretos: " << f(x, y, 1, 1.25) << endl; cout << "signo y delta concretos: " << f(x, y, 1, 1.25) << endl; return 0; return 0;} double f(double x, double y, int signo, double delta) { return signo * delta * x / y; return signo * delta * x / y;} Página 507 Fundamentos de la programación: La abstracción procedimental (Anexo) Por defecto, signo + Por defecto, Δ es 1 Por defecto, signo + Por defecto, Δ es 1

Luis Hernández Yáñez Página 508 Fundamentos de la programación: La abstracción procedimental (Anexo)

Luis Hernández Yáñez Igual nombre, distintos parámetros Funciones o procedimientos con igual nombre y distintos parámetros: int abs(int n); double abs(double n); long int abs(long int n); Se ejecutará la función que corresponda al tipo de argumento: abs(13) // argumento int --> primera función abs(-2.3) // argumento double --> segunda función abs(3L) // argumento long int --> tercera función Página 509 Fundamentos de la programación: La abstracción procedimental (Anexo) Para indicar que es un literal long int, en lugar de int

Luis Hernández Yáñez #include #include using namespace std; void intercambia(int &x, int &y); void intercambia(double &x, double &y); double &y); void intercambia(char &x, char &y); void intercambia(int &x, int &y) { int tmp; int tmp; tmp = x; tmp = x; x = y; x = y; y = tmp; y = tmp;} void intercambia(double &x, double &y) { double &y) { double tmp; double tmp; tmp = x; tmp = x; x = y; x = y; y = tmp; y = tmp;} void intercambia(char &x, char &y) { char tmp; char tmp; tmp = x; tmp = x; x = y; x = y; y = tmp; y = tmp;} int main() { int i1 = 3, i2 = 7; int i1 = 3, i2 = 7; double d1 = 12.5, d2 = 35.9; double d1 = 12.5, d2 = 35.9; char c1 = 'a', c2 = 'b'; char c1 = 'a', c2 = 'b'; cout << i1 << " - " << i2 << endl; cout << i1 << " - " << i2 << endl; cout << d1 << " - " << d2 << endl; cout << d1 << " - " << d2 << endl; cout << c1 << " - " << c2 << endl; cout << c1 << " - " << c2 << endl; intercambia(i1, i2); intercambia(i1, i2); intercambia(d1, d2); intercambia(d1, d2); intercambia(c1, c2); intercambia(c1, c2); cout << i1 << " - " << i2 << endl; cout << i1 << " - " << i2 << endl; cout << d1 << " - " << d2 << endl; cout << d1 << " - " << d2 << endl; cout << c1 << " - " << c2 << endl; cout << c1 << " - " << c2 << endl; return 0; return 0;} Página 510 Fundamentos de la programación: La abstracción procedimental (Anexo) inter.cppinter.cpp

Luis Hernández Yáñez Licencia CC (Creative Commons) Creative CommonsCreative Commons Este tipo de licencias ofrecen algunos derechos a terceras personas bajo ciertas condiciones. Este documento tiene establecidas las siguientes: Pulsa en la imagen de arriba a la derecha para saber más. Fundamentos de la programación: La abstracción procedimental (Anexo) Página 511 Reconocimiento (Attribution): En cualquier explotación de la obra autorizada por la licencia hará falta reconocer la autoría. No comercial (Non commercial): La explotación de la obra queda limitada a usos no comerciales. Compartir igual (Share alike): La explotación autorizada incluye la creación de obras derivadas siempre que mantengan la misma licencia al ser divulgadas.