You are on page 1of 5

Facultad de Ciencias Exactas, Ingeniera y Agrimensura

Departamento de Sistemas e Informtica


Escuela de Electrnica
Informtica II
Prctica 0: Programacin bsica en C
Contenido:
Esta prctica est diseada para que el estudiante comience a programar en C y se
ejercite en manipular las estructuras de control, los tipos bsicos de datos y operadores
que provee el lenguaje, programando, editando, compilando, depurando y ejecutando
programas en un entorno de desarrollo actual. Estos ejercicios estn pensados para
realizarse preferentemente con estilo y sintaxis de programacin en C.
1) ealizar un programa para intercambiar los contenidos de dos variables enteras.
2) ealizar un programa que declare las variables x, y, z, les asigne los valores !", #" y
$" 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) ealizar un programa que pida una temperatura en grados Celsius y la convierta a
grados (a)ren)eit mostrando en pantalla un mensaje del tipo xxx grados Celsius son
yyy grados (a)ren)eit. ecuerde que:
F !"# $ % C$ & =
4) Escriba cdigo C para calcular y mostrar por pantalla el %*los' valor %*es' de x %real',
solucin de la siguiente ecuacin cuadrtica %polinomio de segundo grado'+
ax
2
+ bx + c = 0,
donde, los coeficientes a, b y c se suponen enteros con valores en el rango de ,!"" a
!"".
ecuerde que para resolver una ecuacin cuadrtica se deben usar las frmulas+
( )
"
'
(
"
b b ac
raiz
a
+
=
( )
"
'
"
"
b b ac
raiz
a

=
Ejemplo+
(, ", ) x b c = = =
( "
"*+ '*+ raiz y raiz = =
-ay ciertos casos a tener en cuenta+
.i a y b son ambos ", no )ay solucin %caso degenerado'.
Ejemplo+
+, +, )
,o -ay solucin caso degenerado#
a b c = = =
Informtica II Prctica 0 v. 2012 Pg 1 de 5
.i a es " y b distinto de ", la ecuacin es lineal, y tiene una &nica solucin.
Ejemplo+
+, ", )
', la ecuacin es lineal
a b c
x
= = =
=
.i el t/rmino b# , 0ac %el discriminante' es negativo, entonces no tiene soluciones
reales
Ejemplo+
(, ", )
discriminante negati.o, no -ay soluciones reales
a b c = = =
.i el discriminante es ", entonces )ay dos soluciones id/nticas.
Ejemplo+
(, ', '
", discriminante cero, /nica solucin#
a b c
x
= = =
=
5) Escriba+
a' cdigo C para calcular el factorial de un n&mero entero n, usando la sentencia
1)ile+
n0 1 n*n2(#*n2"#* 3 *"*(
2enga 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 cdigo C para )allar la potencia n %entera' de #. 3sar la sentencia for.
6) Escriba un programa que pida al usuario !" n&meros enteros y multiplique el primero
por uno, el segundo por dos y as4 sucesivamente. 5ebe entregar como salida la suma
de las multiplicaciones.
7) ealizar un programa que le presente al usuario un men& de opciones con las cuatro
operaciones bsicas %suma, resta, multiplicacin, divisin'. .eg&n la operacin elegida
ingresar # n&meros enteros, se realizar la misma y se mostrar por pantalla el
resultado. El usuario podr trabajar en el programa )asta que indique lo contrario.
ecordar que la divisin por cero es indeterminada.
8) Complete el siguiente programa para que dado un importe exacto de una cantidad
indique el m4nimo n&mero de monedas y billetes que podr4a constituir esa cantidad.
6as monedas y billetes pueden ser de son de !, 7, !", #7, 7", !"", #"" y 7"" pesos.
#include <stdio.h>
#define LIM 8
int monedas[LIM]= {500, 200, 00, 50, 25, 0, 5, !"
int main#${
int num, cantidad, numonedas"
%&intf #'Int&odu(ca el im%o&te e)acto* '$"
scanf #'+d', ,cantidad$"
%&intf #'-l cam.io o%timo es el si/uiente* 0n'$"
fo& #num=0" num<LIM" num11$ {
numonedas=cantidad 2 "
if #numonedas 3= 0$ %&intf #'+d de +d.0n', numonedas, monedas[num]$"
cantidad= cantidad + "
!
!
Informtica II Prctica 0 v. 2012 Pg 2 de 5
9) Escriba un programa que lea por teclado diez n&meros enteros distintos de cero y a
continuacin lea una secuencia de valores enteros indicando si estn entre los diez
valores le4dos. Cuando se lea el valor cero, el programa finalizar.
.olucin+
#include <stdio.h>
int main#$
{
int 4leidos[0], 4alo&"
fo& #int i=0" i<0" i11${
scanf#' 0n +d',,4alo&$"
4leidos[i]=4alo&"
%&intf #'-l 4alo& leido es* +d 0n',4alo&$"
!
5hile #4alo& 3= 0${
%&intf #'In/&ese un 4alo& 0n'$"
scanf#' 0n +d',,4alo&$"
fo& #int 6=0" 6<0" 611${
if #4alo&==4leidos[6]$
%&intf #' 7alo& ocu%a el lu/a& * +d del 4ecto& 0n', 6 $"
else continue"
!
!
&etu&n 0"
!
10).e ingresa por teclado la cantidad de agua ca4da, en mil4metros d4a a d4a durante un
mes. .e pide determinar el d4a de mayor lluvia, el de menor y el promedio
11)5adas n mediciones, { }
(, "
, ,
n
x x x K
de una misma magnitud x, se define el promedio
como+
i
x
x
n

y decimos que el promedio es la mejor estimacin de x. 8or otro lado, se define


la desviacin estndar como+
"
4
(
x i
x x
n

y decimos que esta es una forma de


caracterizar la confiabilidad de las mediciones.
a$ Escriba cdigo C para calcular el valor promedio de mediciones contenidas en un
arreglo de variables tipo double.
.$ Escriba cdigo C para calcular la desviacin estndar de mediciones contenidas en
un arreglo de variables tipo double.
12)Consideremos n pares de mediciones
( ( " "
, #, , #, , , #
n n
x y x y x y K
. .i suponemos que las
cantidades estn relacionadas linealmente, es decir mediante una relacin del tipo
y mx h = +
, entonces puede demostrarse que la mejor estimacin de la pendiente m y
de la ordenada al origen ), vienen dadas por las ecuaciones+
Informtica II Prctica 0 v. 2012 Pg 3 de 5
( )
"
"
i i
n x x =

( ) *
i i i i
n x y x y
m

=


( )
"
*
i i i i i
x y x x y
h

=


Escriba cdigo C tal que, dado dos arreglos de variables tipo double, calcule la
pendiente y la ordenada al origen.
13)Escriba
a' cdigo C para ordenar un arreglo de enteros en orden ascendente, usando el
m/todo de .eleccin. 5ic)o m/todo consiste en encontrar el elemento ms c)ico
del arreglo e intercambiarlo con el primer elemento9 luego se encuentra el segundo
ms c)ico y se lo intercambia con el segundo elemento9 etc.
b' cdigo C para generar !""""" enteros al azar, ordenarlo y luego comparar los
tiempos insumidos para buscar un elemento por b&squeda lineal y por otro un
m/todo ms eficiente %investigar los m/todos posibles'.
14)Escriba
a' cdigo C para calcular la traza de una matriz cuadrada de double. .e denomina
traza de una matriz cuadrada a la suma de los elementos de su diagonal principal.
b' cdigo C para determinar la matriz transpuesta de otra %conteniendo n&meros de
tipo double'. 3na matriz transpuesta de otra, es aquella que tiene los mismos
elementos pero dispuestos en forma distinta. 6as columnas de la matriz original se
transforman en filas de la matriz transpuesta.
c' cdigo C para calcular el producto de dos matrices cuadradas de dimensin n.
15)Escriba cdigo C para determinar si un .tring s es un pal4ndromo %es decir, se lee
igual en ambos sentidos'. 8or ejemplo+ :abcba;, es pal4ndromo.
16)Concatenar dos cadenas
a' sin usar las funciones estndar.
b' usando las funciones estndar.
17)5ada una cadena contar y mostrar por pantalla la ocurrencia de cada letra que
compone la misma.
18)5ada una cadena, mostrarla invertirla.
19)5ada una frase en una cadena, mostrar en pantalla cada palabra que la compone+
a' sin usar las funciones estndar.
Informtica II Prctica 0 v. 2012 Pg 4 de 5
b' usando las funciones estndar.
20)Escriba un programa para ver las longitudes y valores mximos y m4nimos en bytes de
los tipos bsicos de programacin en C en su mquina+
.olucin+
#include <stdio.h>
#include <limits.h>
#include <float.h>
int main#${
cha& a"
sho&t int ."
int c"
lon/ int d"
unsi/ned cha& e"
unsi/ned sho&t int f"
unsi/ned int /"
unsi/ned lon/ int h"
float i"
dou.le 6"
lon/ dou.le 8"
%&intf #'Lon/itud de cada uno de los ti%os .asicos 0n0n'$"
%&intf #'La lon/itud de cha& a= +d0n',si(eof#a$$"
%&intf #'La lon/itud de sho&t int .= +d0n',si(eof#.$$"
%&intf #'La lon/itud de int c= +d0n',si(eof#c$$"
%&intf #'La lon/itud de lon/ int d= +d0n',si(eof#d$$"
%&intf #'La lon/itud de unsi/ned cha& e= +d0n',si(eof#e$$"
%&intf #'La lon/itud de unsi/ned sho&t int f= +d0n',si(eof#f$$"
%&intf #'La lon/itud de unsi/ned int /= +d0n',si(eof#/$$"
%&intf #'La lon/itud de unsi/ned lon/ int h= +d0n',si(eof#h$$"
%&intf #'La lon/itud de float i= +d0n',si(eof#i$$"
%&intf #'La lon/itud de dou.le 6= +d0n',si(eof#6$$"
%&intf #'La lon/itud de lon/ dou.le 8= +d0n',si(eof#8$$"
%&intf#'0n7alo&es minimos 9 ma)imos de cada uno de los ti%os0n0n'$"
%&intf #'Minimo 9 ma)imo de cha& a= +d0t0t+d0n',:;<=>MI?,:;<=>M<@$"
%&intf #'Minimo 9 ma)imo de sho&t int .=+d0t0t+d0n',A;=B>MI?,A;=B>M<@$"
%&intf #'Minimo 9 ma)imo de int c= +d0t0t+d0n',I?B>MI?,I?B>M<@$"
%&intf #'Minimo 9 ma)imo de lon/ int d=+d0t0t+d0n',LC?D>MI?,LC?D>M<@$"
%&intf #'Ma)imo de unsi/ned cha& e= +d0n',E:;<=>M<@$"
%&intf #'Ma)imo de unsi/ned sho&t int f= +d0n',EA;=B>M<@$"
%&intf #'Ma)imo de unsi/ned int /= +d0n',EI?B>M<@$"
%&intf #'Ma)imo de unsi/ned lon/ int h= +d0n',ELC?D>M<@$"
%&intf #'Minimo 9 ma)imo de float i= +d0t0t+d0n',FLB>MI?,FLB>M<@$"
%&intf #'Minimo 9 ma)imo de dou.le 6= +d0t0t+d0n',GHL>MI?,GHL>M<@$"
%&intf #'Minimo 9 ma)imo de lon/ dou.le 8=+d0t0t+d0n',LGHL>MI?,LGHL>M<@$"
!
Informtica II Prctica 0 v. 2012 Pg 5 de 5