El documento presenta una serie de ejercicios sobre programación en C para la asignatura Taller de Lenguajes I de la carrera de Ingeniería en Computación de la UNLP. Los ejercicios abordan temas como tipos de datos, estructuras de control, funciones y generación de números aleatorios. El objetivo es que los estudiantes practiquen y afiancen conceptos básicos de programación en el lenguaje C.
El documento presenta una serie de ejercicios sobre programación en C para la asignatura Taller de Lenguajes I de la carrera de Ingeniería en Computación de la UNLP. Los ejercicios abordan temas como tipos de datos, estructuras de control, funciones y generación de números aleatorios. El objetivo es que los estudiantes practiquen y afiancen conceptos básicos de programación en el lenguaje C.
Título original
Taller de Lenguajes I – Ingeniería en Computación – UNLP.pdf
El documento presenta una serie de ejercicios sobre programación en C para la asignatura Taller de Lenguajes I de la carrera de Ingeniería en Computación de la UNLP. Los ejercicios abordan temas como tipos de datos, estructuras de control, funciones y generación de números aleatorios. El objetivo es que los estudiantes practiquen y afiancen conceptos básicos de programación en el lenguaje C.
El documento presenta una serie de ejercicios sobre programación en C para la asignatura Taller de Lenguajes I de la carrera de Ingeniería en Computación de la UNLP. Los ejercicios abordan temas como tipos de datos, estructuras de control, funciones y generación de números aleatorios. El objetivo es que los estudiantes practiquen y afiancen conceptos básicos de programación en el lenguaje C.
Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
Está en la página 1de 3
Taller de Lenguajes I Ingeniera en Computacin UNLP
1 2013 Primer Semestre
Prctica 1 Tipos de datos simples y estructuras de control Funciones Identificadores 1. Al compilar un programa en C, el compilador puede notificar errores y avisos (warnings). Qu diferencia existe entre ellos? Puede un programa compilar con errores? y con warnings? Compile el siguiente cdigo e identifique errores y warnings. Luego, corrjalos para que el cdigo compile correctamente. #include <stdio.h> int main(){ double pi= 3.14; int y= 5 printf("pi= %d\n", pi); } 2. Investigue los diferentes tipos de datos del lenguaje C y luego responda: a. Qu ocurre cuando asignamos un char a un int? y al revs? Ejecute el siguiente cdigo y analice lo que imprime: #include <stdio.h> int main(){ char c= 'a'; int x= 64; printf("char c= %c\n", x); printf("int x= %d\n", c); return 0; } b. Qu diferencia existe entre los tipos float y double? se puede asignar sin inconvenientes? c. Qu sucede cuando en una operacin intervienen operadores diferentes (por ejemplo: +, -, *, /, %)? d. Investigue el operador sizeof. Para qu sirve? Luego aplquelo y verifique el tamao de los distintos tipos de datos en su mquina. 3. Escriba un programa que a partir de un nmero real ledo desde teclado, el cual representa una distancia en kilmetros, imprima su equivalente en millas. Nota: 1,61 Km 1 milla. 4. Escriba un programa que imprima en pantalla todos los nmeros enteros mltiplos de 5 comprendidos entre 1 y 50. Realice dos soluciones con las siguientes caractersticas: a. Utilizando el operador % para determinar cundo un nmero es mltiplo de 5. b. Utilizando un for donde la variable ndice se incremente en 5 unidades por cada iteracin. 5. Escriba un programa que lea nmeros enteros ingresados por teclado. La lectura finaliza cuando la suma de los nmeros ingresados es mayor a 1000. Al finalizar, informe el promedio de todos los nmeros pares y el mximo de los nmeros impares ledos. Taller de Lenguajes I Ingeniera en Computacin UNLP 2 2013 Primer Semestre
6. Identifique y corrija los errores en cada uno de los siguientes cdigos (Nota: puede haber ms de uno): a. if (edad >= 40); printf(Tiene %d aos o ms,&40); else printf(Tiene menos de %d aos,&40); b. int total, x = 1; while (x <= 10) { total += x; ++x; } printf(Total = %f,total); c. int x, y; scanf(%d,x); scanf(%d,y); printf(x + y = %d ,x+y); d. int valor; scanf(%d,&valor); switch (valor % 2) { case 0: printf(El valor es par); case 1: printf(El valor es impar); } 7. Indique qu valores de la variable de control i se imprimen para cada uno de las siguientes estructuras de control for. Ejecute cada cdigo y analice por qu ocurre cada caso: a. for (i = 0; i <= 11; i++) printf(%d\n,i); b. for (i = 0; i <= 11; ++i) printf(%d\n,i); c. for (i = 2; i <= 11; i+=2) printf(%d\n,i); d. for (i = 1; i <= 11; i*=2) printf(%d\n,i); e. for (i = 11; i >= 1; i-=2) printf(%d\n,i); f. for (i = 11; i > 1; i=+1) printf(%d\n,i);
8. Escriba un programa que lea 2 nmeros enteros y un carcter, el cual debe corresponderse con un operador matemtico (+, -, /, *), y a partir de ellos imprima el resultado de realizar la operacin pedida en pantalla. En caso de que el carcter no represente un operador vlido, imprima un mensaje de error. 9. Escriba un programa que imprima la raz cuadrada, el cuadrado y el cubo de los nmeros enteros comprendidos en el rango 1..10. Nota: para calcular la raz cuadrada y la potencia de un nmero investigue las funciones sqrt() y pow(), ambas de la librera <math.h>. 10. Escriba un programa que imprima 15 nmeros generados pseudo-aleatoriamente. La secuencia generada es siempre la misma? Por qu? Qu se puede hacer para generar secuencias pseudo- aleatorias diferentes? Taller de Lenguajes I Ingeniera en Computacin UNLP 3 2013 Primer Semestre
Nota: para generar nmeros en forma pseudo-aleatoria investigue la funcin rand(), la cual se encuentra definida en la biblioteca <stdlib.h>. 11. Para todo nmero natural n, se llama factorial de n al producto de todos los naturales desde 1 hasta n:
Escriba una funcin que reciba como parmetro un nmero entero y retorne como resultado el factorial del mismo. a. Resolvindolo de forma iterativa. b. Resolvindolo de forma recursiva. 12. Un nmero primo es un nmero natural mayor que 1, que tiene dos divisores distintos nicamente: l mismo y el 1. a. Escriba una funcin que reciba como parmetro un nmero entero n y determine si el mismo es primo o no. b. Escriba un programa que lea nmeros enteros desde teclado hasta que la cantidad de nmeros primos ledos sea 5. 13. Una escuela primaria desea evaluar si sus alumnos son capaces de resolver operaciones matemticas de suma de nmeros enteros. Para ello se pide realizar un programa que muestre al alumno 4 operaciones de suma y le pida que ingrese sus correspondientes resultados. Los operandos de las operaciones a resolver deben ser generados aleatoriamente y deben estar en el rango de 0 a 100. Cada operacin respondida de forma correcta suma 1 punto. Al finalizar informar la nota obtenida por el alumno de acuerdo a la siguiente tabla: Puntaje 4 3 2 1 0 Nota A B C D E Nota: para generar nmeros en forma aleatoria investigue la funcin rand(), la cual se encuentra definida en la biblioteca <stdlib.h>. Para asegurarse que el nmero generado por la funcin rand() se encuentre en el rango de 0 a 100, puede utilizar el operador % con 101 como segundo operando. 14. Investigue los identificadores posibles para variables y funciones, y luego responda: a. Para qu sirve el identificador auto? y register? Pueden aplicarse a funciones? b. Es lo mismo aplicar el identificador static a una variable local que a una global? Qu ocurre cuando se califica static a una funcin? 15. Desarrolle una funcin llamada damePar(), la cual debe retornar un nmero entero. damePar() devuelve 0 en el primer llamado, 2 en el segundo, 4 en el tercero, y as sucesivamente. Luego, escriba un programa que lea un nmero entero positivo n desde teclado y utilizando damePar() imprima los primeros n nmeros pares. No utilice variables globales.