Ámbito y Funciones. Lenguaje de Programación Estructurado. Siempre imaginé el Paraíso como algún tipo de biblioteca.

Documentos relacionados
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

Tema: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD.

Hoja de ejercicios del Tema 3

LENGUAJE DE PROGRAMACION I. Ing. JAVIER ECHEGARAY ROJO Ing. WILDER ROMAN MUNIVE. Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 1

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

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

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

ALMACENAMIENTO PERSISTENTE DE DATOS

Examen escrito de Programación 1

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Funciones. Parámetros por valor

Introducción a C++ y Code::Blocks

Examen Principios de Programación Febrero 2012

Tema 5: Diseño modular. Índice. Notas. Programación 2. Curso Notas. Ejemplo. La herramienta make. 1 Diseño modular.

Tema 4: Estructuras de Control Estructura y Contenidos

SEGUNDO PARCIAL INFORMATICA II

Programación en C++/Funciones

Bloque 4. La descomposición funcional y el diseño descendente

Estructuras de Repetición (Repita para)

Funciones como Subprogramas en C++

República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda. Lenguaje C++ Contadores y Acumuladores

Recursión Directa. Una función es de recursión directa si contiene una llamada explícita a si misma. return foo (y 1); Recursión Indirecta

Temario. Tema 2. Tecnología de Desarrollo Software. 2.1 Excepciones en C Prueba y Depuración. 2.3 Documentación

Apuntadores en C y C++

Prof. Dr. Paul Bustamante

Segundo Taller Final de PROGRAMACIÓN ORIENTADO A OBJETOS. INGENIERÍA DE SISTEMAS. Docente y Administrativo: Luz Esperanza Espitia Preciado

Problema - Sumando Digitos

Programación en C+ +/ Funciones

Introducción al laboratorio de Programación I

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

1 Estructura básica de un programa C++

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

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

Fundamentos de la programación

El concepto de función en programación se fundamenta en el concepto de función matemática 1

Preliminares. Tipos de variables y Expresiones

Metodología de la Programación II. Recursividad

Programación Estructurada

Programación Básica. Martin Méndez Facultad de Ciencias Universidad Autónoma de San Luis Potosí

Fundamentos de programación

Temario detallado. Conceptos generales de lenguajes y compiladores. Proceso de compilación de un programa en C++ bajo Code::Blocks

FUNDAMENTOS BÁSICOS DE PROGRAMACIÓN EN C++

Práctica 8: Barreras

1. Juego del Ahorcado

Guía práctica de estudio 05: Diagramas de flujo

Curso 0 de Informática

GL-PCS2201-L05M FUNCIONES Y LA ESTRUCTURA DEL PROGRAMA EN LENGUAJE C

Tema: Sobrecarga de Operadores.

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

RELACIÓN DE EJERCICIOS. Tema 3: Introducción al Lenguaje C

MANUAL DE RUBY (PARTE I) Luis José Sánchez González

Tema: Clases y Objetos en C++.

Capítulo 6. Introducción a la POO

Informática FACULTAD DE FÍSICAS

Programación Orientada a Objetos Métodos Guía de Ejercicios v9.7

Unidad II Fundamentos de C++ M.C. Juan Carlos Olivares Rojas

Vectores. 27/05/05 Programación Digital I 1

Problemas de Recursividad

Estructuras de repetición hacer-mientras y repita hasta

Lenguaje C Funciones. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Entrada y salida de datos en C y C++

Introducción al lenguaje C

Estructuras de Repetición (Hacer-Mientras)

Introducción a los Computadores

Elementos de un programa en C

Programación Avanzada

Tema: Arreglos de Objetos en C++.

Tema: Punteros a Objetos. Puntero this.

Prof. Dr. Paul Bustamante

Metodología y Tecnología de la Programación

Presentación. Programación I. Conceptos Avanzados de Programación. :: Prof. Yeniffer Peña

ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 7 Herencia y Composición en POO

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Ejercicio 1 (2 puntos. Tiempo: 25 minutos)

CURSO 2º GRUPO Junio 2011

Programcaión Básica. Arreglos y Estructuras de Datos (2)

Un identificador le da nombre único a un elemento en un programa (Variables, procedimientos, etc.). No puede contener operadores como + - * /

Estructuras de repetición

CONTENIDO. Programación orientada a objetos - POO. Clases. Constructores y destructores. Definiciones. Entrada y salida

PRACTICA 5. LABORATORIO DE CONTROL POR COMPUTADOR LABVIEW-Bibliotecas de funciones de enlace dinámico (DLL)

Carlos A. Rivera-Morales. Precálculo 2

Estructuras de control y DFDs

ELO329: Diseño y Programación Orientados a Objetos 20 de Junio de Certamen Final

Tema 5: Herramientas de programación y diseño modular

Enteros (Z):..., -3, -2, -1, 0, 1, 2, 3,... Números enteros (positivos o negativos), sin decimales. Incluye a los naturales.

Prof. Dr. Paul Bustamante

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Librerías estándar en C++ STL: Standard Template Library. Álvaro Sánchez Miralles José Porras (Fidel Fernández)

INTRODUCCIÓN AL LENGUAJE C++

Una función es una fórmu SINTAXIS DE UNA FUNCI. Ejemplo de sintaxis: escriben entre los paréntes Ejemplo: =SUMA(A1:C8) argumentos.

Programación estructurada (Introducción a lenguaje C)

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

MPI es un estándar de programación en paralelo mediante paso de mensajes que permite crear programas portables y eficientes.

Capítulo 1. Introducción al C Mi primer programa

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

GLOSARIO DE MICROSOFT VISUAL BASIC (HAZ CLIC EN LA OPCION DEL MENU Y ACCEDERAS RAPIDAMENTE)

CONCEPTOS BASICOS DEL LENGUAJE JAVA

PROGRAMACIÓN N C++ CONSTRUCTORES PROG.C++ L11 CONSTRUCTORES DEL LENGUAJE

Unidad I: Tipo de Dato Abstracto (TDA)

Transcripción:

Ámbito y Funciones Lenguaje de Programación Estructurado Siempre imaginé el Paraíso como algún tipo de biblioteca. Jorge Luis Borges 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 1

Recordando algunas funciones en <cmath> Función sqrt(value) pow(base, exp) abs(value) ceil(value) floor(value) log(value) Definición Raíz Cuadrada Elevar una base a un exponente Valor absoluto Redondear hacia arriba Redondear hacia abajo Logaritmo natural log10(value) Logaritmo en base 10 max(value1, value2) min(value1, value2) round(value) sin(value) cos(value) tan(value) Máximo de dos valores Mínimo de dos valores Redondear al entero más próximo Seno / coseno / tangente de un ángulo en radianes 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 2

Lenguaje de Programación Estructurado AMBITO DE VARIABLES 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 3

Ámbito de variables El ámbito de una variable es la sección o parte del programa en el que la variable es válida. El ámbito depende de dónde la variable haya sido declarada. Variables globales: Válidas en todo el programa Variables locales: Válidas en un bloque del programa delimitado por { 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 4

Ámbito de variables #include <iostream> using namespace std; /* Variables globales */ double global = 3; int M[1000][1000]; int main() { /* Variables locales */ double local1 = 7.2; if (global > 2) { /* Variables local de bloque */ double local2 = global / 2; return 0; 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 5

Ámbito de variables: Un ejemplo extremo #include <iostream> using namespace std; double x = 1; int main() { cout << x << endl; double x = 2; cout << x << endl; if (x == 2) { double x = 3; cout << x << endl; cout << x << endl; { double x = 4; cout << x << endl; cout << x << endl; return 0; 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 6

Lenguaje de Programación Estructurado FUNCIONES 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 7

Funciones En C++, una función es una agrupación de instrucciones que, en conjunto, realizan una tarea. Tipo de Retorno Parámetros tipo nombre_func(tipo nombre_param,..., tipo nombre_param ) { instruccion; instruccion;... instruccion; return expresion; 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 8

Algunos ejemplos /* Convertir a minuscula */ char minuscula(char ch) { if (ch >= 'A' && ch <= 'Z') { ch = ch + 32; return ch; /* Determinar si un caracter es vocal */ bool esvocal(char ch) { ch = minuscula(ch); return ch == 'a' ch == 'e' ch == 'i' ch == 'o' ch == 'u'; 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 9

Funciones tiporetorno nombre(parametros) Pueden o no tener parámetros de entrada. Deben retornar un valor. Generalmente los mismos parámetros de entrada generan el mismo valor de salida. Generalmente no dependen de variables externas. #include <iostream> using namespace std; /* Funcion que recibe 2 parametros double y retorna la suma */ double sumar(double a, double b) { double suma; suma = a + b; return suma; int main() { double suma = sumar(5, 4); cout << suma << endl; return 0; 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 10

Procedimientos void nombre(parametros) #include <iostream> using namespace std; Un procedimiento es una función que no retorna ningún valor. Realizan determinadas operaciones en el programa. Puede o no tener parámetros de entrada, así como depender de otras variables externas. char saludo[5] = "hola"; /* Declaramos las funciones antes de usarlas*/ void saludar() { cout << saludo << endl; void saludar(int veces) { for (int i = 0; i < veces; i++) { saludar(); /*No enviamos ningún parámetro*/ int main() { saludar(); saludar(3); return 0; 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 11

Funciones con cadenas #include <iostream> using namespace std; int strlen(char cadena[]) { int i = 0; while (cadena[i]!= '\0') { i += 1; return i; int main() { char s[] = "Hola"; cout << strlen(s) << endl; return 0; Se pueden recibir cadenas como parámetros del siguiente modo: tipo_retorno funcion(, char cadena[],..) No olvidemos que en las cadenas el tamaño se determina de acuerdo a la posición del carácter especial '\0' 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 12

Funciones con arreglos #include <iostream> using namespace std; int suma(int numeros[], int n) { int valor = 0; for (int i = 0; i < n; i++){ valor = valor + numeros[i]; return valor; int main() { int arreglo[5] = {1, 2, 3, 4, 5; cout << suma(arreglo, 5) << endl; return 0; Se pueden recibir arreglos como parámetros del siguiente modo: tipo_retorno funcion(, int x[], int n,..) Se debe incluir un parámetro adicional que indique el tamaño del arreglo! 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 13

Recursividad Lenguaje de Programación Estructurado Para entender la recursividad, primero hay que entender la recursividad. Anónimo 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 14

Funciones recursivas #include <iostream> using namespace std; int factorial(int n) { if(n <= 1) return 1; return n * factorial(n - 1); int main() { cout << factorial(5) << endl; return 0; Las funciones pueden llamarse recursivamente. Recordemos los conceptos de recursividad: o Casos base o de terminación o Casos generales 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 15

Aplicaciones Básicas Calcular el número de dígitos de un número dado. Calcular la suma de dígitos de un número dado. Calcular el factorial de un número: F(n) = n * F(n - 1) Calcular el número combinatorio: C(n, k) = C(n-1, k-1) + C(n-1, k) Calcular el término n de la serie de Fibonacci: F(n) = F(n-1) + F(n-2) 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 16

Conjetura de Collatz Dado cualquier número, n, se construye una secuencia de números: Si n es par, se divide entre 2. Si n es impar, se multiplica por 3 y se suma 1 al resultado. Se repiten los pasos mientras n sea distinto de 1. La conjetura de Collatz indica que para cualquier n inicial, eventualmente se llega al número 1. 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 17

Lenguaje de Programación Estructurado FRACTALES 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 18

Triangulo de Sierpinski Nivel 1 Nivel 2 Nivel 3 Nivel 4 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * https://en.wikipedia.org/wiki/sierpinski_triangle 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 19

Alfombra de Sierpinski # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # https://en.wikipedia.org/wiki/sierpinski_carpet 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 20

Fractal de Vicsek Nivel 1 Nivel 2 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # https://en.wikipedia.org/wiki/vicsek_fractal 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 21

Ejercicios para PC2 Este es un test con ejercicios sobre el uso de funciones en C++. Puede resolver el test en forma colaborativa con sus compañeros. No obtendrá puntos adicionales pero reforzará conceptos del curso. Puede revisar la sección de preguntas frecuentes de la plataforma: FAQ. Si tiene alguna consulta por favor envíe un correo a rpalaciosr@uni.edu.pe http://hr.gs/st202ejercicios1 http://hr.gs/pc2x 23/09/2017 ST 202W - Lenguaje de Programación Estructurado 22