Práctica 0: Programación básica en C

Facultad de Ciencias Exactas, Ingeniería y Agrimensura Departamento de Sistemas e Informática Escuela de Electrónica Informática II Práctica 0: Programación básica en C Contenido: Esta práctica está diseñada para que el estudiante comience a programar en C/C++ y se ejercite en manipular las estructuras de control, los tipos básicos de datos y operadores que provee el lenguaje, programando, editando, compilando, depurando y ejecutando programas en un entorno de desarrollo actual. Estos ejercicios están pensados para realizarse preferentemente con estilo y sintaxis de programación en C. 1) Realizar un programa para intercambiar los contenidos de dos variables enteras. 2) Realizar un programa que declare las variables x, y, z, les asigne los valores 10, 20 y 30 e intercambie entre si sus valores de forma que el valor de x pasa a y, el de y pasa a z y el valor de z pasa a x (se pueden declarar variables auxiliares aunque se pide que se use el menor número posible). 3) Realizar un programa que pida una temperatura en grados Celsius y la convierta a grados Fahrenheit mostrando en pantalla un mensaje del tipo xxx grados Celsius son yyy grados Fahrenheit. Recuerde que: (F − 32) / 9 = C / 5 4) Escriba código C para calcular y mostrar por pantalla el (/los) valor (/es) de x (real), solución de la siguiente ecuación cuadrática (polinomio de segundo grado): ax2 + bx + c = 0, donde, los coeficientes a, b y c se suponen enteros con valores en el rango de –100 a 100. Recuerde que para resolver una ecuación cuadrática se deben usar las fórmulas: ( −b + raiz1= ( −b − raiz 2 = b 2 − 4ac ) 2a b 2 − 4ac ) 2a Ejemplo: x = 1, b = 2, c = −8 raiz1 = 2.0 y raiz2 = −4.0 Hay ciertos casos a tener en cuenta: • Si a y b son ambos 0, no hay solución (caso degenerado). Ejemplo: a = 0, b = 0, c = −8 No hay solución (caso degenerado) • Si a es 0 y b distinto de 0, la ecuación es lineal, y tiene una única solución. Informática II – Práctica 0 – v. 2011 Pág 1 de 7 Ejemplo: a = 0, b = 2, c = −8 x = 4, la ecuación es lineal • Si el término b2 – 4ac (el discriminante) es negativo, entonces no tiene soluciones reales Ejemplo: a = 1, b = 2, c = 8 discriminante negativo, no hay soluciones reales • Si el discriminante es 0, entonces hay dos soluciones idénticas. Ejemplo: a = 1, b = 4, c = 4 x = −2, (discriminante cero, única solución) 5) Escriba: a) código C para calcular el factorial de un número entero n, usando la sentencia while: n! = n.(n-1).(n-2). … .2.1 Tenga en cuenta que el factorial de un número entero cuyo valor puede sobrepasar el rango de los enteros, si n es muy grande. b) Escriba código C para hallar la potencia n (entera) de 2. Usar la sentencia for. 6) Escriba un programa que pida al usuario 10 números enteros y multiplique el primero por uno, el segundo por dos y así sucesivamente. Debe entregar como salida la suma de las multiplicaciones. 7) Realizar un programa que le presente al usuario un menú de opciones con las cuatro operaciones básicas (suma, resta, multiplicación, división). Según la operación elegida ingresará 2 números enteros, se realizará la misma y se mostrará por pantalla el resultado. El usuario podrá trabajar en el programa hasta que indique lo contrario. Recordar que la división por cero es indeterminada. 8) Complete el siguiente programa para que dado un importe exacto de una cantidad indique el mínimo número de monedas y billetes que podría constituir esa cantidad. Las monedas y billetes pueden ser de son de 1, 5, 10, 25, 50, 100, 200 y 500 pesos. #include #define LIM 8 int monedas[LIM]= {500, 200, 100, 50, 25, 10, 5, 1}; int main(){ int num, cantidad, numonedas; printf ("Introduzca el importe exacto: "); scanf ("%d", &cantidad); printf ("El cambio optimo es el siguiente: \n"); for (num=0; num 1; x = x | 0x80; } } return x; } int main() { x = 0xB7; xx= rightRot(x,5)

6 downloads 120 Views 195KB Size

Recommend Stories


c:::=c := : : : : : :~: :~~=:::0:==:I~~
c:::=c:= : : : :~::~~=:::0:==:I~~ SESIONES Acuerdos de la ordinaria de 2.a convocatoria de 1.0 de octubre Prcsidc11cia: Excmo. Sr. Alcalde, D. Antonio

C : AX+BY +C=0, m =,I
ECUACION PARTICULAR: Y=mX+B, m: PENDIENTE, B: COEFICIENTE DE POSICION. : AX+BY +C=0 , m = A B C ,0 A ,I X , IY 0, C B m( x x0) , P 0 ( x0 , y0

C 0 9LCULO DE DERIVADAS
Matemáticas II CÁLCULO DE DERIVADAS. Calcula las derivadas de las siguientes funciones, simplificando al máximo el resultado. 1 1 + tan 2 x = 1 2

SALVADOR J 0 R C; E B I, AN C 0 Presidente de la Republica Dominicana
748 Articulo 16.- Se encarga a la Secretaria dc 15stado de Turismo del fie1 cumplimiento de este reglamento. DADO e n Santo Doming0 de Guzmin, Distri

~Q~C ) a Es c~ t (, -~ ccino4t, 0
505 •~ 3 a h. Ca a (0/~Q~C’) a ~Ç’s ≤uJ.wt?~e3 ¿aa) Es a ICck c~ t ( 2 , ¿-~ JL ~ 3~ ccino4t’, cck ~ ~ ~ç.~Z\ 2. Ifla cJ~4-~ a

TEMA 2. DA=Y = C 0 + cy d + I 0 + G 0
TEMA 2 1. DEMANDA AGREGADA (sin sector exterior) DA=Y = C +I +G DA=Y = C0 + cYd + I0 + G0 Componentes de la demanda agregada: C+I+G Consumo C = C0

S N x 3 0. S N L x 3 0. S C x 3 0. S C x 3 0
Sistema de Montaje P O L I - F LE X S N- 3 0 x3 0 Perfil de aluminio cuadrado de 30 x 30 mm con regatas abiertas en las 4 caras. Peso 1,09 (kg/m

Story Transcript

Facultad de Ciencias Exactas, Ingeniería y Agrimensura Departamento de Sistemas e Informática Escuela de Electrónica Informática II

Práctica 0: Programación básica en C Contenido: Esta práctica está diseñada para que el estudiante comience a programar en C/C++ y se ejercite en manipular las estructuras de control, los tipos básicos de datos y operadores que provee el lenguaje, programando, editando, compilando, depurando y ejecutando programas en un entorno de desarrollo actual. Estos ejercicios están pensados para realizarse preferentemente con estilo y sintaxis de programación en C.

1) Realizar un programa para intercambiar los contenidos de dos variables enteras. 2) Realizar un programa que declare las variables x, y, z, les asigne los valores 10, 20 y 30 e intercambie entre si sus valores de forma que el valor de x pasa a y, el de y pasa a z y el valor de z pasa a x (se pueden declarar variables auxiliares aunque se pide que se use el menor número posible). 3) Realizar un programa que pida una temperatura en grados Celsius y la convierta a grados Fahrenheit mostrando en pantalla un mensaje del tipo xxx grados Celsius son yyy grados Fahrenheit. Recuerde que: (F − 32) / 9 = C / 5 4) Escriba código C para calcular y mostrar por pantalla el (/los) valor (/es) de x (real), solución de la siguiente ecuación cuadrática (polinomio de segundo grado): ax2 + bx + c = 0, donde, los coeficientes a, b y c se suponen enteros con valores en el rango de –100 a 100. Recuerde que para resolver una ecuación cuadrática se deben usar las fórmulas:

( −b + raiz1=

( −b − raiz 2 =

b 2 − 4ac

)

2a b 2 − 4ac

)

2a

Ejemplo: x = 1, b = 2, c = −8 raiz1 = 2.0 y raiz2 = −4.0 Hay ciertos casos a tener en cuenta: •

Si a y b son ambos 0, no hay solución (caso degenerado). Ejemplo: a = 0, b = 0, c = −8 No hay solución (caso degenerado) • Si a es 0 y b distinto de 0, la ecuación es lineal, y tiene una única solución. Informática II – Práctica 0 – v. 2011

Pág 1 de 7

Ejemplo: a = 0, b = 2, c = −8 x = 4, la ecuación es lineal • Si el término b2 – 4ac (el discriminante) es negativo, entonces no tiene soluciones reales Ejemplo: a = 1, b = 2, c = 8 discriminante negativo, no hay soluciones reales • Si el discriminante es 0, entonces hay dos soluciones idénticas. Ejemplo: a = 1, b = 4, c = 4 x = −2, (discriminante cero, única solución) 5) Escriba: a) código C para calcular el factorial de un número entero n, usando la sentencia while: n! = n.(n-1).(n-2). … .2.1 Tenga en cuenta que el factorial de un número entero cuyo valor puede sobrepasar el rango de los enteros, si n es muy grande. b) Escriba código C para hallar la potencia n (entera) de 2. Usar la sentencia for. 6) Escriba un programa que pida al usuario 10 números enteros y multiplique el primero por uno, el segundo por dos y así sucesivamente. Debe entregar como salida la suma de las multiplicaciones. 7) Realizar un programa que le presente al usuario un menú de opciones con las cuatro operaciones básicas (suma, resta, multiplicación, división). Según la operación elegida ingresará 2 números enteros, se realizará la misma y se mostrará por pantalla el resultado. El usuario podrá trabajar en el programa hasta que indique lo contrario. Recordar que la división por cero es indeterminada. 8) Complete el siguiente programa para que dado un importe exacto de una cantidad indique el mínimo número de monedas y billetes que podría constituir esa cantidad. Las monedas y billetes pueden ser de son de 1, 5, 10, 25, 50, 100, 200 y 500 pesos. #include #define LIM 8 int monedas[LIM]= {500, 200, 100, 50, 25, 10, 5, 1}; int main(){ int num, cantidad, numonedas; printf ("Introduzca el importe exacto: "); scanf ("%d", &cantidad); printf ("El cambio optimo es el siguiente: \n"); for (num=0; num 1; x = x | 0x80; } } return x; } int main() { x = 0xB7; xx= rightRot(x,5); return 0; }

24) Generar una función unsigned setBits(unsigned x, int p) que setee ajustado a izquierda los p bits menos significativos de x. El resto de los bits deben ser cero Asumir que el bit menos significativo de x, ocupa la posición cero y que p siempre asume un valor positivo que debe ser menor o igual a 7. 25) Generar una función unsigned getBits(unsigned x,int p, int n) que retorne ajustado a derecha los n bits de x, más a la izquierda que la posición indicada por p. Asumir que el bit menos significativo de x, ocupa la posición cero 0 y que n y p siempre asumen valores positivos, por ejemplo: getBits(x,4,3)

deberá retornar los 3 bits que ocupen las posiciones 4, 5 y 6 dentro

de x (vea si puede sintetizar la operación en una sola instrucción)

Informática II – Práctica 0 – v. 2011

Pág 5 de 7

26) Escriba un programa para ver las longitudes y valores máximos y mínimos en bytes de los tipos básicos de programación en C en su máquina: Solución: #include #include #include int main(){ char a; short int b; int c; long int d; unsigned char e; unsigned short int f; unsigned int g; unsigned long int h; float i; double j; long double k; printf ("Longitud de cada uno de los tipos basicos \n\n"); printf ("La longitud de char a= %d\n",sizeof(a)); printf ("La longitud de short int b= %d\n",sizeof(b)); printf ("La longitud de int c= %d\n",sizeof(c)); printf ("La longitud de long int d= %d\n",sizeof(d)); printf ("La longitud de unsigned char e= %d\n",sizeof(e)); printf ("La longitud de unsigned short int f= %d\n",sizeof(f)); printf ("La longitud de unsigned int g= %d\n",sizeof(g)); printf ("La longitud de unsigned long int h= %d\n",sizeof(h)); printf ("La longitud de float i= %d\n",sizeof(i)); printf ("La longitud de double j= %d\n",sizeof(j)); printf ("La longitud de long double k= %d\n",sizeof(k)); printf("\nValores minimos y maximos de cada uno de los tipos\n\n"); printf ("Minimo y maximo de char a= %d\t\t%d\n",CHAR_MIN,CHAR_MAX); printf ("Minimo y maximo de short int b=%d\t\t%d\n",SHRT_MIN,SHRT_MAX); printf ("Minimo y maximo de int c= %d\t\t%d\n",INT_MIN,INT_MAX); printf ("Minimo y maximo de long int d=%d\t\t%d\n",LONG_MIN,LONG_MAX); printf ("Maximo de unsigned char e= %d\n",UCHAR_MAX); printf ("Maximo de unsigned short int f= %d\n",USHRT_MAX); printf ("Maximo de unsigned int g= %d\n",UINT_MAX); printf ("Maximo de unsigned long int h= %d\n",ULONG_MAX); printf ("Minimo y maximo de float i= %d\t\t%d\n",FLT_MIN,FLT_MAX); printf ("Minimo y maximo de double j= %d\t\t%d\n",DBL_MIN,DBL_MAX); printf ("Minimo y maximo de long double k=%d\t\t%d\n",LDBL_MIN,LDBL_MAX); }

27) Definir una estructura para almacenar la hora con precisión de milisegundos. Luego: a) Hacer una función, lo suficientemente flexible, para incrementar una hora de diferentes formas. b) Hacer una función para calcular diferencias de tiempo entre horas, en milisegundos en el formato de la estructura c) Hacer una función para sumar horas. Probar las funciones con adecuadas salidas por pantalla. 28) Realizar el ejercicio 12 utilizando estructuras. 29) Haciendo uso del desarrollo del problema 27 y considerando que las mediciones del ejercicio 11 se realizan tomando la hora en que se lleva a cabo cada una, crear un Informática II – Práctica 0 – v. 2011

Pág 6 de 7

arreglo de estructuras llamado mediciones, ordenarlo cronológicamente y mostrarlo por pantalla. Para probar el programa, generar 100 mediciones con valores y horas al azar. 30) Se define TipoCiudad como un struct para almacenar la posición de una ciudad en una representación de dos dimensiones, es decir, en un plano. struct TipoPunto{ double abscisa; double ordenada; }; struct TipoCiudad{ TipoPunto situacion; char nombre[50]; };

Para almacenar varias ciudades, se construirá un vector de TipoCiudad. Se pide construir una función que, a partir de un vector de TipoCiudad y dado el nombre de una ciudad, reordene ascendentemente el vector atendiendo a la distancia euclídea del resto de las ciudades con respecto a la elegida. Por ejemplo, si elegimos "Granada", la ciudad con dicho nombre deberá ponerse como la primera componente del vector; la segunda será la ciudad más cercana a "Granada" y así sucesivamente. El prototipo de la función será: void Reordenar (TipoCiudad ciudades[], int num_ciudades, const char nombre_ciudad_referencia[]);

Recordemos que la distancia euclídea entre dos puntos se define como la raíz cuadrada de la suma de los cuadrados de las diferencias de las abscisas y las ordenadas. No pueden usarse vectores auxiliares. 31) Una red de sensores inalámbrica intercambia mensajes entre sus nodos y esta comunicación tiene diferentes características. La comunicación puede ser broadcast o unicast , multihop o single hop, el mensaje se puede enviar o puede fallar su envío, y el mismo puede ser recibido o no. Escriba una función en C, que utilice un campo de bits, para representar que tipo de características tiene la comunicación y si se pudo establecer o no. Realice un programa que genere 6 valores al azar de un byte, y analice que tipo de comunicación se estableció. Muestre por pantalla como resultó cada comunicación. Significado de cada bit: 0 broadcast, 1 unicast, 2 multihop, 3 single hop, 4 enviado, 5 no enviado, 6 recibido y 7 no recibido.

Informática II – Práctica 0 – v. 2011

Pág 7 de 7

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.