Master SIA 2012/13. Programación de Sistemas Paralelos. OpenMP: Ejercicios prácticos. Facultad de Informática. Ejercicio 1.A. pi.c

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Master SIA 2012/13. Programación de Sistemas Paralelos. OpenMP: Ejercicios prácticos. Facultad de Informática. Ejercicio 1.A. pi.c"

Transcripción

1 Master SIA 2012/13 Facultad de Informática Programación de Sistemas Paralelos OpenMP: Ejercicios prácticos En el directorio templates/practica de tu cuenta msiaxx tienes varios programas que hay que procesar en paralelo utilizando OpenMP. En el caso de los ejercicios 1.A 1.B, se trata de bucles sencillos de paralelizar, y el objetivo es medir la eficiencia de la ejecución paralela en la máquina que tenemos disponible. El ejercicio 2 es más complejo; es un conjunto de bucles y funciones que hay que analizar y decidir la manera más conveniente de paralelizarlos. El objetivo es conseguir el mayor speed-up posible. En los casos en los que se desea obtener el tiempo de ejecución, conviene repetir la ejecución del programa unas cuantas veces (5 por ejemplo) y promediar los resultados y obtener la desviación típica, ya que puede haber una cierta dispersión en las medidas de tiempos (en caso de que algún resultado se diferencie claramente del resto, no tomarlo en cuenta). Los programas incluyen variables, funciones, etc. como ayuda, pero puedes modificarlos en lo que quieras (manteniendo la semántica, claro). No olvides añadir #include <omp.h> al principio de los programas openmp. Como resultado de estos ejercicios, hay que redactar un informe con los resultados obtenidos (numéricos y gráficos, programas ), explicando de manera razonada el comportamiento que se observa. El trabajo es para cada grupo y forma parte de la evaluación de la asignatura; si el grupo es de dos alumnos, recuerda que no se trata de que cada uno haga la mitad de los ejercicios, sino de hacerlos entre los dos. Se valorarán las soluciones propuestas, los resultados obtenidos y la explicación de los mismos, así como la calidad (estructuración, redacción, explicaciones, gráficos ) del propio informe. Estos son los ejercicios a trabajar: Ejercicio 1.A pi.c El programa calcula el valor de la integral de 4 / (1+x 2 ) entre 0 y 1, que da como resultado π, mediante la suma del área de una serie de trapecios que cubren el área bajo la curva. El resultado se aproxima más al valor de π cuantos más trapecios se sumen, que es un parámetro que pide el programa. El objetivo es medir el tiempo de ejecución del correspondiente programa paralelo en función del número de threads utilizados: 1, 2, 4, 8, 16, 32. Utiliza, por ejemplo, de iteraciones (sumas). El reparto del bucle que sea estático consecutivo. Dibuja las curvas del tiempo de ejecución y speed-up que se obtienen e interprétalas adecuadamente.

2 Ejercicio 1.B tgrano.c En este caso hay que obtener los tiempos de ejecución del programa en paralelo y en serie, en función del tamaño del vector que se procesa (lo pide el programa), por ejemplo para tamaños 1, 10, 100, 1.000, , , Hay que trabajar con 4 threads y scheduling estático consecutivo. Dibuja el tiempo de ejecución y el speed-up en relación al caso serie, en función del tamaño del vector. Ejercicio 2 prog.c El programa prog.c contiene un grupo de bucles y funciones que trabajan con matrices y vectores, sin que representen una aplicación en concreto. El objetivo del ejercicio es aplicar diferentes técnicas de paralelización de bucles para conseguir ejecutar el programa en el menor tiempo posible, es decir, obtener el mayor speed-up posible. La metodología que recomendamos aplicar es la siguiente: -- Mide el tiempo de ejecución de cada bucle y/o función del programa serie (sin considerar la inicialización y la impresión de resultados). De esta manera se obtiene un perfil aproximado de qué puntos del programa son los más adecuados para paralelizar. Por ejemplo, se puede añadir al comienzo de cada función, bucle, grupo de ellos, etc., que se desee temporizar algo similar a lo siguiente: gettimeofday(&t0, 0); [código que se quiere temporizar] gettimeofday(&t1, 0); Esta función, que viene con el programa, imprime el tiempo transcurrido entre t0 y t1: TrazaTiempo("T1",&t0,&t1); En todo caso, puedes usar cualquier otra función y de la manera que te resulte más cómoda. -- Intenta paralelizar los bucles y funciones, uno a uno, y mide el speed-up que vayas consiguiendo en cada trozo. Probablemente habrá que aplicar estrategias diferentes en función del bucle, las dependencias, el reparto de datos, etc. -- Comprueba que los resultados obtenidos son coherentes con la ejecución serie del programa. Para ello, al finalizar el programa se imprimen los resultados del mismo (primeros y últimos 10 elementos de los vectores y de la matriz, productos escalares, histograma, etc.). Una manera sencilla de comprobar resultados es, por ejemplo, dejar los resultados de la ejecución en un fichero (xxx > datos), y comparar luego ambos casos, serie y paralelo, utilizando el comando diff. -- Tras probar diferentes alternativas y en función de los resultados obtenidos, toma las decisiones más adecuadas para paralelizar el programa en su conjunto, y obtén finalmente el speed-up global. Como resultado final, el informe de resultados debe recoger el código con que se ejecuta cada bucle, el tipo de técnica que se ha aplicado para paralelizarlo y por qué, y los resultados obtenidos tiempo de ejecución en serie, tiempo de ejecución en paralelo, y el speed-up tanto para cada parte como para el programa completo. Justifica todas las decisiones que tomes y los comportamientos observados.

3 Ejercicio 1.A: pi.c /********************************************************************************** Calculo de PI (programa serie) integral de 1/(1+ x*x) de 0 a 1 = arctg x = pi/4 Pide el numero de intervalos para sumar la integral **********************************************************************************/ #include <stdio.h> #include <sys/time.h> #define PI25D main () struct timeval t0, t1; tej; int i, num_iter, nthr=0; paso, x, sum = 0.0, pi = 0.0; printf("\n Numero de iteraciones? "); scanf("%d", &num_iter); #ifdef _OPENMP #pragma omp parallel nthr = omp_get_num_threads(); #endif gettimeofday(&t0, 0); paso = 1.0 / () num_iter; for (i=0; i<num_iter; i++) x = (i + 0.5) * paso; sum = sum / (1.0 + x*x); pi = sum * paso; gettimeofday(&t1, 0); printf("\n Valor de PI con %d sumas = %1.12f", num_iter, pi); printf("\n Error = %.7f (x10a-9)\n", fabs(pi - PI25D)* ); tej = (t1.tv_sec t0.tv_sec) + (t1.tv_usec t0.tv_usec) / 1e6; printf("\n Tej. (%d threads) = %1.3f ms\n\n", nthr, tej*1000);

4 Ejercicio 1.B: tgrano.c /********************************************************************************** tgrano.c Ejemplo para ver el efecto del tamaino de las tareas (grano) en el tiempo de ejecucion **********************************************************************************/ #include <stdio.h> #include <sys/time.h> #define N // tamaino maximo del vector float A[N]; main () struct timeval t0, t1; tej; int i, j, tam_vec, nthr=0; printf("\n Tamaino del vector a procesar ---> "); scanf("%d", &tam_vec); for (i=0; i<tam_vec; i++) A[i] = 1; #ifdef _OPENMP #pragma omp parallel nthr = omp_get_num_threads(); #endif gettimeofday(&t0, 0); for (i=0; i<tam_vec; i++) for (j=1; j<=1000; j++) A[i] = (A[i]*A[i] + 1) * (A[i]*A[i] - 1) + (j%2); gettimeofday(&t1, 0); tej = (t1.tv_sec t0.tv_sec)+ (t1.tv_usec t0.tv_usec) / 1e6; printf("\n\n Tej.(%d threads) = %f ms\n\n", nthr, tej*1000);

5 Ejercicio 2: prog.c /********************************************************************************** prog.c Ejercicio de paralelizacion OMP --- por hacer --- **********************************************************************************/ #include <omp.h> #include <stdio.h> #include <sys/time.h> // Declaracion de constantes y variables #define N #define N #define N #define N #define N #define N #define PIXMAX 10 struct timeval t0, t1; int i, j, k; sum, x, pe1, pe2; int histo[pixmax], imagen[n4][n5]; A[N1], B[N1], C[N1], E[N1]; D[N2][N3]; H[N6], J[N6], N[N6]; // RUTINAS AUXILIARES // Procedimiento que saca por pantalla el tiempo (en milisegundos): pt1-pt0 // junto con el string pasado por parametro: ptexto void TrazaTiempo(char * ptexto, struct timeval *pt0, struct timeval *pt1) tej; int nthr=0; #ifdef _OMP nthr = omp_get_max_threads(); #endif tej = (pt1->tv_sec - pt0->tv_sec) + (pt1->tv_usec - pt0->tv_usec) / 1e6; printf("%s = %10.3f ms (%d threads)\n",ptexto, tej*1000, nthr); // Funcion que calcula el producto escalar de dos vectores del tamaino // especificado ProductoEscalar ( *V1, *V2, int lvec) int i; pe = 0.0; for(i=0; i<lvec; i++) pe = pe + V1[i] * V2[i];

6 return(pe); // Tres procedimientos que sacan por pantalla el contenido de las variables // globales correspondientes void SacarImagen() //Variable global imagen[n4][n5] int i, j; for(i=0; i<10; i++) for(j=0; j<10; j++) printf("%1d",imagen[i][j]); void SacarVector( *V, int L1, int L2) int i; for (i=l1; i<l2; i++) if(i%5==0) printf("%12.2f ",V[i]); void SacarMatrizD() //Variable global D[N2][N3] int i, j; for (i=0; i<10; i++) for (j=0; j<10; j++) if(j%5==0) printf("\n "); printf("%12.2f ",D[i][j]); printf("\n\n");

7 // PROGRAMA PRINCIPAL main () //Inicializacion de vectores for(i=0; i<n1; i++) A[i] = 0.0; B[i] = ()(N1-i+2); C[i] = 1 / 10.0; E[i] = 0.0; for(i=0; i<n2; i++) for(j=0; j<n3; j++) D[i][j] = 6.0; for(i=0; i<n4; i++) for(j=0; j<n5; j++) if(i%3) imagen[i][j] = (i+j) % PIXMAX; else imagen[i][j]= (i+i*j) % PIXMAX; for(i=0; i<n6; i++) H[i] = 1.0; J[i] = 6.0; N[i] = 3.0; //Comienza la ejecución // bucle 1 for(i=1; i<(n1-1); i++) x = B[i] / (B[i] + 1.0]; A[i] = (x + B[i] + 1.0) / ; C[i] = (A[i] + C[i-1] + C[i+1]) / 3.0; E[i] = x * x / (x * x + 1.7); // bucle 2 sum = 0.0; for(i=3; i<n2; i++) for(j=0; j<n3; j++) D[i][j] = D[i-3][j] / x + E[i]; if (D[i][j] < 6.5) sum = sum + D[i][j]/100.0;

8 // bucle 3 for(i=0; i<pixmax; i++) histo[i] = 0; for(i=0; i<n4; i++) for(j=0; j<n5; j++) histo[imagen[i][j]] = histo[imagen[i][j]] + 1; // bucle 4 for(i=2; i<n6; i++) H[i] = 3.5 / (7.0/N[i-1] + 2.0/H[i]); N[i] = N[i] / (N[i]+2.5) / N[i]; J[i] = (H[i-1]/N[i-2] + 3.5/H[i-1]) / (H[i-1] + N[i-2]); // 2 funciones pe1 = ProductoEscalar(C,E,N1); pe2 = ProductoEscalar(H,J,N6); // resultados finales: se imprimen los primeros y los ultimos 10 elementos // de cada vector, el histograma de la imagen y los valores de x, sum, // y los productos escalares. printf("a-> "); SacarVector (A, 0, 10); SacarVector (A, N1-10, N1); printf("c-> "); SacarVector (C, 0, 10); SacarVector (C, N1-10, N1); printf("e-> "); SacarVector (E, 0, 10); SacarVector (E, N1-10, N1); printf("h-> "); SacarVector (H, 0, 10); SacarVector (H, N6-10, N6); printf("j-> "); SacarVector (J, 0, 10); SacarVector (J, N6-10, N6); printf("n-> "); SacarVector (N, 0, 10); SacarVector (N, N6-10, N6); printf("d->\n"); SacarMatrizD(); printf("el histograma de la imagen es:\n"); for (k=0; k<pixmax; k++) printf("%9d", k); for (k=0; k<pixmax; k++) printf("%9d", histo[k]); printf("\n\n"); printf("x = %18.2f\n", x); printf("sum = %18.2f\n", sum); printf("c*e = %18.2f\n", pe1); printf("h*j = %18.2f\n", pe2);

Laboratorio de Paralelismo

Laboratorio de Paralelismo Laboratorio de Paralelismo 2010-2011 Prácticas OpenMP En el directorio de trabajo LPAR de tu cuenta mlapxx tienes cuatro programas que hay que procesar en paralelo utilizando OpenMP. En el caso de los

Más detalles

Master SIA. Programación de Sistemas Paralelos. MPI: Ejercicios prácticos. Ejercicio 1. Facultad de Informática

Master SIA. Programación de Sistemas Paralelos. MPI: Ejercicios prácticos. Ejercicio 1. Facultad de Informática Master SIA Facultad de Informática Programación de Sistemas Paralelos MPI: Ejercicios prácticos Te proponemos realizar estos cuatro ejercicios. Al final, y junto con los ejercicios sobre OpenMP, hay que

Más detalles

Laboratorio de Paralelismo OpenMP: ejemplos y ejercicios

Laboratorio de Paralelismo OpenMP: ejemplos y ejercicios Laboratorio de Paralelismo OpenMP: ejemplos y ejercicios > Máquinas y directorios Vamos a trabajar con el siguiente multiprocesador SMP: PowerEdge 6850 (DELL) 4 procesadores Intel Xeon 7100 de doble núcleo

Más detalles

Introducción a los sistemas de cómputo paralelo Olatz Arbelaitz Gallego José Ignacio Martín Aramburu Javier Muguerza Rivero Cuaderno del estudiante

Introducción a los sistemas de cómputo paralelo Olatz Arbelaitz Gallego José Ignacio Martín Aramburu Javier Muguerza Rivero Cuaderno del estudiante Introducción a los sistemas de cómputo paralelo Olatz Arbelaitz Gallego José Ignacio Martín Aramburu Javier Muguerza Rivero Cuaderno del estudiante IKD baliabideak 5 (2013) INDICE Introducción... 3 Pregunta

Más detalles

1 Primitivas básicas de OpenMP

1 Primitivas básicas de OpenMP 1 Primitivas básicas de OpenMP Consultar la página oficial de la plataforma OpenMP http://www.openmp.org/drupal/ Pragmas Es una directiva para el compilador que permite la definición de nuevas directivas

Más detalles

Javier Ibáñez González

Javier Ibáñez González Javier Ibáñez González Despacho 109 Edificio DSIC (1F) Tutorías bajo demanda e-mail: jjibanez@dsic.upv.es http://personales.upv.es/jjibanez Práctica P2 (OpenMP): sesiones 4 y 5 Práctica P3 (MPI): sesiones

Más detalles

SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GRADO EN ING. INFORMÁTICA. ING. COMPUTADORES PRÁCTICA 8: INTRODUCCIÓN A OPENMP.

SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GRADO EN ING. INFORMÁTICA. ING. COMPUTADORES PRÁCTICA 8: INTRODUCCIÓN A OPENMP. SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GRADO EN ING. INFORMÁTICA. ING. COMPUTADORES PRÁCTICA 8: INTRODUCCIÓN A OPENMP. 1. OBJETIVOS Y PREPARACIÓN. En la actualidad los multiprocesadores en un solo chip

Más detalles

Laboratorio de Paralelismo Prácticas MPI

Laboratorio de Paralelismo Prácticas MPI Laboratorio de Paralelismo Prácticas MPI Tras los ejemplos MPI que hemos ido haciendo en el laboratorio, hay que realizar estos cuatro ejercicios. Los programas de partida los tienes en el directorio de

Más detalles

Cómputo paralelo con openmp y C

Cómputo paralelo con openmp y C Cómputo paralelo con openmp y C Sergio Ivvan Valdez Peña Guanajuato, México. 13 de Marzo de 2012 Sergio Ivvan Valdez Peña Cómputo Guanajuato, paralelo conméxico. openmp y () C 13 de Marzo de 2012 1 / 27

Más detalles

ARQUITECTURA DE SISTEMAS PARALELOS 2. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 4. PROGRAMACION PARALELA CON openmp.

ARQUITECTURA DE SISTEMAS PARALELOS 2. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 4. PROGRAMACION PARALELA CON openmp. ARQUITECTURA DE SISTEMAS PARALELOS 2. 4º INGENIERÍA INFORMÁTICA. PRÁCTICA 4. PROGRAMACION PARALELA CON openmp. 1. OBJETIVOS Y PREPARACIÓN. En la actualidad los multiprocesadores en un solo chip (denominados

Más detalles

identificador: Es el nombre que le damos a la variable matriz y por el cual la referenciaremos en nuestro programa.

identificador: Es el nombre que le damos a la variable matriz y por el cual la referenciaremos en nuestro programa. Matrices La matriz es una estructura de datos básica dentro de los lenguajes de programación y conceptualmente son identicas a sus homónimas matemáticas. Por tanto una matriz es un conjunto de datos de

Más detalles

Programación (PRG) PRACTICA 4. Elementos de programación: estructuras de control.

Programación (PRG) PRACTICA 4. Elementos de programación: estructuras de control. Programación (PRG) PRACTICA 4. Elementos de programación: estructuras de control. Facultad de Informática Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia Curso 2002/2003

Más detalles

SESIÓN DE EJERCICIOS E1

SESIÓN DE EJERCICIOS E1 SESIÓN DE EJERCICIOS E1 Primera parte: ejercicios test (soluciones al final) A resolver antes de comenzar la sesión en el aula Ejercicio 1 Qué definición de constantes es la correcta en lenguaje C? a)

Más detalles

SESIÓN DE EJERCICIOS E1

SESIÓN DE EJERCICIOS E1 SESIÓN DE EJERCICIOS E1 Primera parte: ejercicios test Ejercicio 1 Qué definición de constantes es la correcta en lenguaje C? a) #define N=25; b) #define N 25 c) int N=25; d) int N 25 Ejercicio 2 La expresión

Más detalles

1. Cuestiones. Ejercicios resueltos de C. Diego Rodríguez-Losada 1. //a) #include <stdio.h> main( ) { int x = 0, y = 0; //b) #include <stdio.

1. Cuestiones. Ejercicios resueltos de C. Diego Rodríguez-Losada 1. //a) #include <stdio.h> main( ) { int x = 0, y = 0; //b) #include <stdio. 1. Cuestiones Enunciado Febrero 04. Ejercicio Tercero. (2 puntos 30 minutos) Resolver los siguientes problemas indicando, en la parte inferior, cual es el resultado de cada programa. En caso de que el

Más detalles

#include <stdio.h> float cubica(float numero) { float cubica; cubica = numero * numero * numero; return cubica; }

#include <stdio.h> float cubica(float numero) { float cubica; cubica = numero * numero * numero; return cubica; } /*1. Crear una función que calcule el cubo de un número real (float). El resultado deberá ser otro número real. Probar esta función para calcular el cubo de 3.2 y el de 5. */ float cubica(float numero)

Más detalles

Tema 3. Estructuras de control

Tema 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 detalles

Operadores aritméticos

Operadores aritméticos Bloque 3.2 Operadores aritméticos Suma : x + y Resta : x y Multiplicación : x * y División : x / y Módulo : x % y (resto de la división Si los operandos son enteros tipo del resultado

Más detalles

Escuela Politécnica Superior de Elche

Escuela Politécnica Superior de Elche EXAMEN DE SISTEMAS INFORMÁTICOS INDUSTRIALES ((SOLUCIÓN) (TEORÍA)jUJ jhshshs JUNIO 2015 1. Indicar si las siguientes afirmaciones son verdaderas o falsas: (a) En C++, cuando se destruye un objeto de una

Más detalles

Programación. Test Autoevaluación Tema 6

Programación. Test Autoevaluación Tema 6 Programación Test Autoevaluación Tema 6 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordóñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.

Más detalles

Programación en Memoria Compartida: OpenMP

Programación en Memoria Compartida: OpenMP Programación en Memoria Compartida: OpenMP Domingo Giménez Departamento de Informática y Sistemas Universidad de Murcia, Spain dis.um.es/~domingo Universidad de Murcia 1 Nociones básicas Modelo de programación

Más detalles

TEMA 4. ESTRUCTURAS DE CONTROL

TEMA 4. ESTRUCTURAS DE CONTROL M.P. Sesmero, P. de Toledo, F.J. Ordoñez, J. Gómez-Romero, J.A. Iglesias, J.L. Mira Programación TEMA 4. ESTRUCTURAS DE CONTROL Grado en Ingeniería en Tecnologías Industriales Programación CONTENIDOS 4.1.

Más detalles

Actividad Algoritmos, Estructura y Programación I. FOR, DO-WHILE

Actividad Algoritmos, Estructura y Programación I. FOR, DO-WHILE Actividad Algoritmos, Estructura y Programación I. FOR, DO-WHILE 1. Qué es un bucle? 2. A que se denomina cuerpo de un bucle? 3. Define iteración de un bucle. 4. Cuál es el cuerpo de un bucle? 5. Qué es

Más detalles

Multiprocesamiento en lenguaje C Introducción a Open Multiprocessing (OpenMP)

Multiprocesamiento en lenguaje C Introducción a Open Multiprocessing (OpenMP) Multiprocesamiento en lenguaje C Introducción a Open Multiprocessing (OpenMP) Pertinencia de la enseñanza del cómputo paralelo en el currículo de las ingenierías Algunas preguntas Qué es un proceso? Qué

Más detalles

Práctica 3. Generación de números primos

Práctica 3. Generación de números primos Práctica 3 Generación de números primos Septiembre-Diciembre 2007 1 Algoritmo secuencial (primosec) En esta práctica vamos a trabajar con la generación de números primos basado en el método conocido como

Más detalles

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

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 1 Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 1 Contenidos: 1. Características generales de C 2. Edición y compilación de un programa C 3. Variables y tipos

Más detalles

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Unidad II: Fundamentos de la Programación Estructurada Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Estructura General de un Programa Zona de ficheros de cabecera de las librerías Zona

Más detalles

Dobles: Es el caso de la instrucción if-else (punto 1.2).

Dobles: Es el caso de la instrucción if-else (punto 1.2). 1 1.Introducción Las estructuras de control son instrucciones que nos permiten controlar el flujo de ejecución del programa. Las instrucciones de control se pueden agrupar en instrucciones condicionales

Más detalles

E s c u e l a P o l i t é c n i c a S u p e r i o r d e E l c h e

E s c u e l a P o l i t é c n i c a S u p e r i o r d e E l c h e EXAMEN DE SISTEMAS INFORMÁTICOS INDUSTRIALES (SOLUCIÓN PRÁCTICAS) La duración del examen es de 2 horas. SEPTIEMBRE 2016 En este examen se solicita al alumno realizar una función para ordenar un vector

Más detalles

Introducción general al Lenguaje C (2010/2011)

Introducción general al Lenguaje C (2010/2011) Luis Valencia Cabrera lvalencia@us.es (http://www.cs.us.es/~lvalencia) Ciencias de la Computacion e IA (http://www.cs.us.es/) Introducción general al Lenguaje C (2010/2011) Universidad de Sevilla Índice

Más detalles

1. Que rellene un array con los 100 primeros números enteros y los muestre en pantalla en orden ascendente.

1. Que rellene un array con los 100 primeros números enteros y los muestre en pantalla en orden ascendente. 1. Que rellene un array con los 100 primeros números enteros y los muestre en pantalla en orden ascendente. int main(void) int x,tabla[100]; for (x=1;x

Más detalles

Informática. Prueba de conjunto (0.25 puntos) Considerar el siguiente fragmento de código:

Informática. Prueba de conjunto (0.25 puntos) Considerar el siguiente fragmento de código: NOMBRE Y APELLIDOS DEL ALUMNO: Informática Prueba de conjunto 23.05.14 1.- (0.25 puntos) Considerar el siguiente fragmento de código: for(i=0;i

Más detalles

EJERCICIOS CON FUNCIONES EN C. EJEMPLO CALCULAR SERIES NUMÉRICAS. REFACTORIZAR. (CU00552F)

EJERCICIOS CON FUNCIONES EN C. EJEMPLO CALCULAR SERIES NUMÉRICAS. REFACTORIZAR. (CU00552F) APRENDERAPROGRAMAR.COM EJERCICIOS CON FUNCIONES EN C. EJEMPLO CALCULAR SERIES NUMÉRICAS. REFACTORIZAR. (CU00552F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde cero Fecha

Más detalles

Computación Matricial y Paralela

Computación Matricial y Paralela Computación Matricial y Paralela Programación en Memoria Compartida Javier Cuenca Dpto. de Ingeniería y Tecnología de Computadores Domingo Giménez Dpto. de Informática y Sistemas Universidad de Murcia

Más detalles

Escuela Politécnica Superior de Elche

Escuela Politécnica Superior de Elche EXAMEN DE SISTEMAS INFORMÁTICOS INDUSTRIALES ((SOLUCIÓN) (TEORÍA) La duración del examen es de 2 horas. JUNIO 2016 1. Indicar si las siguientes afirmaciones son verdaderas o falsas: (a) En C++ para cada

Más detalles

OpenMP. Qué es OpenMP?

OpenMP. Qué es OpenMP? OpenMP Qué es OpenMP? Modelo de programación paralela Paralelismo de memoria compartida Soporta el paralelismo por datos Escalable Permite paralelización incremental Extensiones a lenguajes de programación

Más detalles

Operadores de comparación

Operadores de comparación Operadores de comparación Los operadores de comparación en C son: Igual (==) Distinto (!=) Mayor (>) y Mayor o igual (>=) Menor (

Más detalles

Introducción a la Programación de Memoria Compartida.. con OpenMP

Introducción a la Programación de Memoria Compartida.. con OpenMP Introducción a la Programación de Memoria Compartida.. con OpenMP Carlos Jaime BARRIOS HERNANDEZ, PhD. Escuela de Ingeniería de Sistemas e Informática Universidad Industrial de Santander Las herramientas

Más detalles

BENEMERITA UNIVERSIDADD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN

BENEMERITA UNIVERSIDADD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN BENEMERITA UNIVERSIDADD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN PROGRAMACION CONCURRENTE PARALELA Y PRACTICA 3 (PARTE 1 Y 2) HILOS POSIX NOMBRE:

Más detalles

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ; TEMA 5. CONTROL DE FLUJO DEL PROGRAMA 5.1 Sentencias Una sentencia es una expresión seguida de un punto y coma. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ; El ; es obligatorio

Más detalles

for(i = 0; i <= 45; i+=5) { x = (i*3.1416)/180; printf( seno(%d) = %f\n,i,seno(x));

for(i = 0; i <= 45; i+=5) { x = (i*3.1416)/180; printf( seno(%d) = %f\n,i,seno(x)); Ejemplo #include #include float seno(float x); int main(){ int i; float x; for(i = 0; i

Más detalles

Examen Fundamentos de Programación 15 de enero de 2016 Curso 2015/16

Examen Fundamentos de Programación 15 de enero de 2016 Curso 2015/16 Problema 1: [1 punto] Examen Fundamentos de Programación 15 de enero de 2016 Curso 2015/16 Duración: 2,45 horas 10 PUNTOS Publicación de notas 26 de enero Revisión de examen 1 de febrero En el horario

Más detalles

Es una API (Aplication Program Interface) que se usa para paralelismo basado en hilos múltiples en entornos de memoria compartida

Es una API (Aplication Program Interface) que se usa para paralelismo basado en hilos múltiples en entornos de memoria compartida Algo de OPENMP Memoria Compartida Threads O hilos, se definen como flujos de instrucciones independientes, que se ejecutan separadamente del programa principal. Con estos hilos se aprovecha mucho una máquina

Más detalles

Programación I Teoría III.

Programación I Teoría III. Programación I Teoría III http://proguno.unsl.edu.ar proguno@unsl.edu.ar DATOS ESTRUCTURADOS Estructuras de Datos Hasta ahora hemos trabajado con Datos simples enteros reales Caracteres punteros Sin embargo,

Más detalles

Examen de Programación I

Examen de Programación I Tiempo disponible: 100 minutos Examen de Programación I Convocatoria de Diciembre 2006 Permutación 1 Puntuación: sobre 20 puntos - las respuestas acertadas suman 1 punto - las respuestas falladas restan

Más detalles

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

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 2 Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 2 Contenidos: 1. Punteros 2. Arrays 3. Estructuras (registros) y uniones 4. Funciones Ejercicios Algoritmos y

Más detalles

Realizar el ejercicio anterior utilizando Punteros

Realizar el ejercicio anterior utilizando Punteros PUNTEROS Y ARRAYS En C existe una relación entre punteros y arrays tal que cualquier operación que se pueda realizar mediante la indexación de un arrays, se puede realizar también con punteros. Para clarificar

Más detalles

Prácticas de Programación Resueltas: Máquinas de Turing

Prácticas de Programación Resueltas: Máquinas de Turing Prácticas de Programación Resueltas: Máquinas de Turing 1. Realizar un programa que simule la actuación de una máquina de Turing que al serle introducida una sucesión de `1' escritos en casillas consecutivas

Más detalles

Titulo: Calculo de PI

Titulo: Calculo de PI Titulo: Calculo de PI Realizar un programa que calcule una aproximación al número PI, mediante el sumatorio de los 100.000 primeros términos de la serie (y finalmente multiplicada por 4): Nota: Utilicese

Más detalles

Lección 3 Sentencias de control

Lección 3 Sentencias de control 3.1. INTRODUCCIÓN - Hasta aquí: ejecución secuencial de los programas. - Aquí vamos a ver: Lección 3 Sentencias de control Sentencias de control Sentencias condicionales: if- y switch-case Sirven para

Más detalles

Prác%ca 1 Sesión 3 1

Prác%ca 1 Sesión 3 1 Prác%ca 1 Sesión 3 1 Obje%vo Paralelizar códigos mediante los iden%ficadores de hilos Paralelizar dos códigos secuenciales que calculen: 1. El mayor número primo del %po unsigned long long int 2. El número

Más detalles

Programación. Grupo 1B. Tema 2: Elementos de Programación (Parte B)

Programación. Grupo 1B. Tema 2: Elementos de Programación (Parte B) Programación Facultad de Informática Universidad Politécnica de Valencia Grupo 1B Tema 2: (Parte B) David Picó Vila / Enrique Vidal Ruiz D.Picó/E.Vidal UPV: Septiembre, 2001 Índice 1 Introducción 0 2 Variables,

Más detalles

Fundamentos de programación

Fundamentos de programación Fundamentos de programación Estructuras de Control Estructuras de control Estructuras de control Estructura secuencial Estructura alternativa Sentencias if, if else Sentencias if else anidadas El operador

Más detalles

Definición. Procesamiento de Arreglos. Paso de Parámetro a funciones. Arreglos multidimensionales 8/28/2013. Arreglos Unidad 0 Programación AVANZADA

Definición. Procesamiento de Arreglos. Paso de Parámetro a funciones. Arreglos multidimensionales 8/28/2013. Arreglos Unidad 0 Programación AVANZADA Contenido Otoño 2013 Definición Arreglos Unidad 0 Programación AVANZADA Procesamiento de Arreglos Paso de Parámetro a funciones Arreglos multidimensionales 1 2 Introducción Arreglo Una variable puede almacenar

Más detalles

1. Escribe cuál es la salida del siguiente programa: 2. Escribe cuál es la salida del siguiente programa:

1. Escribe cuál es la salida del siguiente programa: 2. Escribe cuál es la salida del siguiente programa: ENUNCIADOS 1. Escribe cuál es la salida del siguiente programa: { int s, j, k, i, l; s=0; for (j=1;j0) i=i-1; printf("\n%d",i);

Más detalles

PARTE II PROGRAMACION CON THREADS EN C

PARTE II PROGRAMACION CON THREADS EN C PARTE II PROGRAMACION CON THREADS EN C II.1 INTRODUCCION Una librería o paquete de threads permite escribir programas con varios puntos simultáneos de ejecución, sincronizados a través de memoria compartida.

Más detalles

Arquitectura de Computadores: Exámenes y Controles

Arquitectura de Computadores: Exámenes y Controles 2º curso / 2º cuatr. Grado en Ing. Informática Doble Grado en Ing. Informática y Matemáticas Arquitectura de Computadores: Exámenes y Controles Examen de Prácticas AC 05/07/2013 resuelto Material elaborado

Más detalles

Lenguaje de Programación: C++ Directivas al preprocesador

Lenguaje de Programación: C++ Directivas al preprocesador UG Lenguaje de Programación: C++ Directivas al preprocesador Universidad de Guanajuato Septiembre 2010 Un preprocesador es un programa separado que es invocado por el compilador antes de que comience la

Más detalles

Punteros. Programación en C 1

Punteros. Programación en C 1 Punteros Programación en C 1 Índice Variables y direcciones de memoria. Punteros definición, declaración e inicialización. Punteros declaración, asignación y dereferencia. Puntero nulo, tipo void. Aritmética

Más detalles

Lenguaje de Programación: C++ Estructuras de control:for

Lenguaje de Programación: C++ Estructuras de control:for UG C++ Lenguaje de Programación: C++ Estructuras de control:for Universidad de Guanajuato Septiembre 2010 Estructuras de iteración La estructura de control que veremos es la estructura de iteración, la

Más detalles

Introducción al lenguaje C

Introducción al lenguaje C Programación 2 Profesorado de Informática CeRP del Suroeste, Uruguay 29 de marzo de 2016 Estructuras de control IV Iteración Sentencia for: for (inicio; condicion; paso) cuerpo for (int i = 0; i < 10;

Más detalles

Programación I Tipos de datos y operadores básicos

Programación I Tipos de datos y operadores básicos Contenidos 1 Tipos de datos y operadores básicos Iván Cantador Fundamentos (I) 2 Fundamentos (I) 3 La programación modularconsiste en descomponer la complejidad de una aplicación informática en distintos

Más detalles

Sistemas Complejos en Máquinas Paralelas

Sistemas Complejos en Máquinas Paralelas Sistemas Complejos en Máquinas Paralelas Clase 1: OpenMP Francisco García Eijó Departamento de Computación - FCEyN UBA 15 de Mayo del 2012 Memoria compartida Las mas conocidas son las máquinas tipo Symmetric

Más detalles

Enunciado 3 Buscar palabras de estructura similar

Enunciado 3 Buscar palabras de estructura similar Enunciado 3 Buscar palabras de estructura similar INDICE 1 Definición del problema...1 2 Solución secuencial...1 3 Tabla de tiempos...2 4 Para saber más...2 5 Listado de programas...2 5.1 palabrasec.c...2

Más detalles

Si un número es múltiplo de otro, u dicho de forma, comprobar si un número es divisor de otro.

Si un número es múltiplo de otro, u dicho de forma, comprobar si un número es divisor de otro. 1.Introducción La programación es una herramienta muy poderosa para resolver todo tipo de problemas, entre ellos los problemas matemáticos. En este artículo se muestra cómo se resuelven algoritmos básicos,

Más detalles

Enunciado 2 Descifrar claves cifradas con crypt

Enunciado 2 Descifrar claves cifradas con crypt Enunciado 2 Descifrar claves cifradas con crypt INDICE 1 Definición del problema...1 2 Solución secuencial...1 3 Tabla de tiempos...3 4 Para saber más...3 5 Listado de programas...3 5.1 cifrado.h...4 5.2

Más detalles

TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y PETICIONES (TLP, RLP) (primera parte).

TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y PETICIONES (TLP, RLP) (primera parte). TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y PETICIONES (TLP, RLP) (primera parte). SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC www.atc.us.es Dpto. de Arquitectura y Tecnología de Computadores. Universidad

Más detalles

APELLIDOS NOMBRE GRUPO CALIFICACIÓN FECHA

APELLIDOS NOMBRE GRUPO CALIFICACIÓN FECHA Hoja 1/10 Duración: una hora y media Resultados de aprendizaje que se evalúan en este examen: R2: Saber emplear las estructuras de control de flujo de programación para implementar algoritmos sencillos.

Más detalles

Apellidos: Nombre: Matrícula: Examen Programación para Sistemas Grado en Ingeniería Informática

Apellidos: Nombre: Matrícula: Examen Programación para Sistemas Grado en Ingeniería Informática Apellidos: Nombre: Matrícula: Examen 105000016 - Programación para Sistemas Grado en Ingeniería Informática Lenguajes y Sistemas Informáticos e Ingeniería de Software Facultad de Informática Universidad

Más detalles

2º curso / 2º cuatr. Arquitectura de Computadores. Grado en Ing. Informática. Seminario 1. Herramientas de programación paralela I: Directivas OpenMP

2º curso / 2º cuatr. Arquitectura de Computadores. Grado en Ing. Informática. Seminario 1. Herramientas de programación paralela I: Directivas OpenMP 2º curso / 2º cuatr. 2º curso / 2º cuatr. Grado en Ing. Informática Arquitectura de Computadores Seminario 1. Herramientas de programación paralela I: Directivas OpenMP 2 Qué es OpenMP? De dónde viene

Más detalles

6. Sentencias repetitivas o bucles

6. Sentencias repetitivas o bucles Programación orientada a objetos con Java 71 6. Sentencias repetitivas o bucles Objetivos: a) Describir el funcionamiento de las sentencias iterativas o bucles (for, while y dowhile) b) Interpretar el

Más detalles

Soluciones a los ejercicios planteados en el curso

Soluciones a los ejercicios planteados en el curso Soluciones a los ejercicios planteados en el curso Unidad 3 - Algoritmos recursivos Lección 2 Mecanismo de recursividad Escribe un algoritmo recursivo que calcule el elemento de cardinal más elevado de

Más detalles

Francisco J. Hernández López

Francisco J. Hernández López Francisco J. Hernández López fcoj23@cimat.mx Ejecución de más de un cómputo (cálculo) al mismo tiempo o en paralelo, utilizando más de un procesador. Sistema de Cómputo Paralelo Hardware Parallel programming:

Más detalles

Los tipos de datos que con mayor frecuencia se utilizan en Informática son:

Los tipos de datos que con mayor frecuencia se utilizan en Informática son: Los tipos de datos que con mayor frecuencia se utilizan en Informática son: Datos Simples ó Básicos Numéricos No Numéricos Variables sin Subíndices: Numéricas Alfanuméricas Char Lógicas En general, los

Más detalles

Universidad Tecnológico Ecotec. Fundamento de programación. Deber

Universidad Tecnológico Ecotec. Fundamento de programación. Deber Universidad Tecnológico Ecotec Fundamento de programación Deber Nombre: Jesús Gabriel Burga Gaybor EJERCICIO 1 // OBJETIVO: REALIZAR LA CODIFICACION DE UN PROGRAMA QUE LEA N NUMEROS // E IMPRIMA EL PORCENTAJE

Más detalles

Práctica 7e: Uso de estructuras en C.

Práctica 7e: Uso de estructuras en C. Práctica 7e: Uso de estructuras en C. Objetivos En esta práctica el objetivo principal es el de poner en práctica los principios básicos del uso de estructuras y librerías de funciones en C. Evaluación

Más detalles

Formato para Prácticas de Laboratorio

Formato para Prácticas de Laboratorio PROGRAMA EDUCATIVO PLAN DE ESTUDIO CLAVE DE UNIDAD DE APRENDIZAJE NOMBRE DE LA UNIDAD DE APRENDIZAJE TRONCO COMUN 2009-2 11214 PROGRAMACION PRÁCTICA No. 12 LABORATORIO DE NOMBRE DE LA PRÁCTICA Licenciado

Más detalles

Examen Teórico (1/3 de la nota final)

Examen Teórico (1/3 de la nota final) Examen Teórico (1/3 de la nota final) 105000016 - Programación para Sistemas Grado en Ingeniería Informática (2009) Lenguajes y Sistemas Informáticos e Ingeniería de Software Facultad de Informática Universidad

Más detalles

Programación I Arrays, cadenas de caracteres y estructuras

Programación I Arrays, cadenas de caracteres y estructuras Contenidos 1 Arrays, cadenas de caracteres y estructuras Iván Cantador Arrays (I) 2 Arrays (II) 3 Un array (tabla, vector) es una colección ordenada de datos de un mismo tipo Declaración de variable

Más detalles

#include <stdio.h> /* Factorial de un número - versión 1- */

#include <stdio.h> /* Factorial de un número - versión 1- */ Ejemplo 1: Programa que calcula el factorial de 'n' números introducidos desde teclado. Primera versión: /* Factorial de un número - versión 1- */ long int factorial (int x) /*definición de función*/ int

Más detalles

Cómputo en paralelo con OpenMP 1

Cómputo en paralelo con OpenMP 1 Cómputo en paralelo con OpenMP 1 Miguel Vargas-Félix miguelvargas@cimat.mx http://www.cimat.mx/~miguelvargas CIMAT, September 2, 2015 1/34 Velocidad de los procesadores de escritorio Recientemente, la

Más detalles

Funciones en lenguaje C

Funciones en lenguaje C Funciones en lenguaje C Funciones Definición: Las funciones son los bloques de construcción básicos de C. Dentro de ellas se da toda la actividad del programa. Criterios para crearlas: Se usa la estrategia

Más detalles

Arquitecturas Paralelas Examen de Febrero 24 Enero 2005

Arquitecturas Paralelas Examen de Febrero 24 Enero 2005 Universidad del País Vasco Facultad de Informática Dpto. de Arquitectura y Tecnología de Computadores Arquitecturas Paralelas Examen de Febrero 24 Enero 2005 Apellidos: Nombre: Grupo: Firma: 1 / 2 / 3

Más detalles

SENTENCIAS DE CONTROL CICLOS for

SENTENCIAS DE CONTROL CICLOS for 2010 UNAN LEON FACULTAD DE CIENCIA Y TECNOLOGIA Departamento de Computación Autor: Asignatura: Programación Estructurada SENTENCIAS DE CONTROL CICLOS for Este documento es una extracción del libro Programación

Más detalles

Paralelización de Programas Secuenciales: OpenMP

Paralelización de Programas Secuenciales: OpenMP Paralelización de Programas Secuenciales: OpenMP http://www.openmp.org Manuel Arenaz arenaz@udc.es Índice Introducción a la programación paralela Programación con OpenMP Directivas de compilación Librería

Más detalles

Repaso 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 Á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 detalles

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

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 4 Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 4 Contenidos: 1. El preprocesador de C 2. Programación modular 3. El programa make Ejercicios Algoritmos y Estructuras

Más detalles

E s c u e l a P o l i t é c n i c a S u p e r i o r d e E l c h e

E s c u e l a P o l i t é c n i c a S u p e r i o r d e E l c h e EXAMEN DE SISTEMAS INFORMÁTICOS INDUSTRIALES (SOLUCIÓN PRÁCTICAS) La duración del examen es de 2 horas. JUNIO 2016 1. Escribir un programa en C++ y C,que mediante el uso de clases y métodos, pida al usuario

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 3 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº3 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Mi primeras

Más detalles

Ejercicios sobre Descomposición Funcional, Parte II. tcomplejo SumarComplejos(tcomplejo, tcomplejo); que sume dos números complejos.

Ejercicios sobre Descomposición Funcional, Parte II. tcomplejo SumarComplejos(tcomplejo, tcomplejo); que sume dos números complejos. Ejercicios sobre Descomposición Funcional, Parte II 1. Escribir un programa que haga uso de las siguientes funciones: tcomplejo SumarComplejos(tcomplejo, tcomplejo); que sume dos números complejos. tcomplejo

Más detalles

ºC = ((ºF - 32)*5)/9 ºF = ((ºC * 9)/5)+32 ºK = ºC

ºC = ((ºF - 32)*5)/9 ºF = ((ºC * 9)/5)+32 ºK = ºC 1. Realizar un programa que pida un nº que equivale a grados celsius, llame a una función pasándole dicho valor y devuelva el equivalente en grados kelvin y grados farenheit. Haz otra función que será

Más detalles

TEMA. Vectores y Matrices. Dept. Ciencias de la Computación e I.A. Universidad de Granada

TEMA. Vectores y Matrices. Dept. Ciencias de la Computación e I.A. Universidad de Granada TEMA Vectores y Matrices Dept. Ciencias de la Computación e I.A. Universidad de Granada 1 VECTORES Y MATRICES Motivación. Operaciones Básicas. Paso de vectores como parámetros. Búsqueda y Ordenación. Matrices.

Más detalles

Eventos e interrupciones

Eventos e interrupciones Programación Concurrente en Linux Eventos e interrupciones Alberto Lafuente, Dep. KAT/ATC de la UPV/EHU, bajo Licencia Creative Commons 1 Contenido 1. Interacción en un programa: entrada/ salida 2. Eventos

Más detalles

Variables y tipos básicos 1. Definir una variable de tipo char. Convertirla a una variable de tipo entera e imprimir su valor asociado.

Variables y tipos básicos 1. Definir una variable de tipo char. Convertirla a una variable de tipo entera e imprimir su valor asociado. Variables y tipos básicos 1. Definir una variable de tipo char. Convertirla a una variable de tipo entera e imprimir su valor asociado. Probarlo con lo caracteres a, b, A y B 2. Hacer lo contrario, leer

Más detalles

ARREGLOS UNIDAD 2 PROGRAMACIÓN. Primavera 2009

ARREGLOS UNIDAD 2 PROGRAMACIÓN. Primavera 2009 1 ARREGLOS UNIDAD 2 PROGRAMACIÓN Primavera 2009 Contenido 2 Definición Procesamiento de Arreglos Paso de Parámetro a funciones Cadenas y caracteres Arreglos multidimensionales Introducción 3 Una variable

Más detalles

Benemérita Universidad Autónoma de Puebla Facultad de Ciencias de la Computación Área de Programación

Benemérita Universidad Autónoma de Puebla Facultad de Ciencias de la Computación Área de Programación Asignatura: Programación I Fecha: Enero 2012 Benemérita Universidad Autónoma de Puebla Facultad de Ciencias de la Computación Área de Programación Capitulo 1. Conceptos básicos de la computación Tema 1.1.

Más detalles

GUÍA DE LABORATORIO #3 ESTRUCTURAS ALGORÍTMICAS CONDICIONALES SIMPLES, DOBLES Y MÚLTIPLES

GUÍA DE LABORATORIO #3 ESTRUCTURAS ALGORÍTMICAS CONDICIONALES SIMPLES, DOBLES Y MÚLTIPLES GUÍA DE LABORATORIO #3 ESTRUCTURAS ALGORÍTMICAS CONDICIONALES SIMPLES, DOBLES Y MÚLTIPLES OBJETIVO: Realizar programas en Lenguaje C aplicando las estructuras condicionales. TEMPORIZACIÓN: Inicio de la

Más detalles

Operadores de comparación

Operadores de comparación Operadores de comparación Los operadores de comparación en C son: Igual (==) Distinto (!=) Mayor (>) y Mayor o igual (>=) Menor (

Más detalles

Bucles anidados. M.Sc. Ana María Salgado G. UNAN - LEON 24/04/2012

Bucles anidados. M.Sc. Ana María Salgado G. UNAN - LEON 24/04/2012 2012 Bucles anidados M.Sc. Ana María Salgado G. UNAN - LEON 24/04/2012 Bucles anidados Los bucles anidados constan de un bucle externo con uno o más bucles internos. Cada vez que se repite el bucle externo,

Más detalles

SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 9 Departamento de Arquitectura y Tecnología de Computadores Universidad de Sevilla

SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 9 Departamento de Arquitectura y Tecnología de Computadores Universidad de Sevilla SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 9 Departamento de Arquitectura y Tecnología de Computadores Universidad de Sevilla PROGRAMACIÓN DE COMPUTADORES DE MEMORIA DISTRIBUIDA USANDO MPI. PREPARACIÓN

Más detalles