Sie sind auf Seite 1von 18

UNIVERSIDAD POLITCNICA DE MADRID DEPARTAMENTO DE ELECTRNICA, AUTOMTICA E INFORMTICA INDUSTRIAL ESCUELA UNIVERSITARIA DE INGENIERA TCNICA INDUSTRIAL

Informtica
Grado en Ingeniera en Electrnica Industrial y Automtica Grado en Ingeniera Elctrica Grado en Ingeniera Qumica

Guin de Prcticas de Laboratorio


Curso 2 !2 " 2 !#

$a%uel Ceda&o Len Cecilia Garca Cena 'a(ier )u*o& Cano

Informtica

Guin de Prcticas de Laboratorio 2012-2013

ndice de contenido
1. Introduccin.............................................................................................................................3 2. Creacin de un programa en Visual C++ 2010 Express...........................................................4 3. Prctica 1. Entorno de programacin depuracin. !peradores sentencias de control" i#$ s%itc&'case...................................................................................................................................( 4. Prctica 2. )entencias de control" *ucles #or$ %&ile do'%&ile................................................+ ,. Prctica 3. Vectores$ cadenas estructuras.............................................................................11 -. Prctica 4. Vectores de estructuras matrices........................................................................12 -. Prctica ,. .unciones con paso por /alor................................................................................13 0. Prctica -. .unciones con paso por re#erencia........................................................................1, +. Prctica (. .unciones con /ectores$ cadenas matrices.........................................................110. Prctica 0. .unciones con estructuras /ectores de estructuras...........................................10

'2'

Informtica

Guin de Prcticas de Laboratorio 2012-2013

!+ Introduccin
1as prcticas de In#ormtica son una parte esencial en la #ormacin del alumno en la asignatura. Para el *uen apro/ec&amiento de las mismas es necesario 2ue el alumno tenga claros los conocimientos tericos de cada prctica antes de entrar al laboratorio. El entorno de desarrollo utili3ado es el ,isual C-- 2 ! instalado en todos los ordenadores del la*oratorio. E./ress de )icrosoft$

Este guin de prcticas inclu e en el segundo cap4tulo una gu4a para crear un programa en el entorno de desarrollo. 5 partir del tercer cap4tulo$ se inclu en las oc&o prcticas a reali3ar. Cada una de las prcticas inclu e los enunciados de los e6ercicios$ cu a programacin de*e ser reali3ada por el alumno durante la sesin de prcticas. 1a duracin de cada sesin es de 1 &ora. )i el alumno no #inali3a los e6ercicios de cada una de las prcticas en ese tiempo$ es sumamente importante 2ue el alumno los realice indi/idualmente para poder asentar los conocimientos. El alumno de*e utili3ar las 0erramientas de de/uracin 2ue inclu e el entorno de desarrollo para detectar eliminar errores de los programas.

'3'

Informtica

Guin de Prcticas de Laboratorio 2012-2013

2+ Creacin de un /rograma en ,isual C-- 2 ! E./ress


Esta gu4a descri*e los pasos para crear un programa en 7icroso#t8 Visual C++ 2010 Express 9VC++:. 1. E6ecute VC++ seleccionando )icrosoft ,isual C-- 2 ! E./ress en el grupo de programas )icrosoft ,isual 1tudio 2 ! E./ress. 5parecer la pgina principal siguiente"

;esde esta pgina se pueden crear pro ecto$ a*rir pro ectos guardados o acceder a in#ormacin di/ersa so*re el entorno de programacin. En VC++$ los programas se denominan soluciones. <na solucin puede contener uno o /arios /royectos. En nuestro caso utili3aremos un solo pro ecto su contenido ser un arc&i/o de cdigo #uente escrito en C. 2. En el men= Arc0i(o seleccionar 2ue(o Proyecto 3 siguiente /entana" aparecer la

'4'

Informtica

Guin de Prcticas de Laboratorio 2012-2013

3. )eleccionar Proyecto (aco $ asignar un nom*re al pro ecto$ por e6emplo >olamundo$ una u*icacin$ por e6emplo$ C"?7isPro ectos. Pulsar Ace/tar+ En el E./lorador de soluciones se muestra la solucin con cuatro carpetas de las cules slo /amos a utili3ar la de Arc0i(os de cdigo fuente 9con extensin .c:"

4. Para a@adir un arc&i/o de cdigo #uente$ pulsamos el *otn derec&o del ratn so*re la carpeta de Arc0i(os de cdigo fuente Agregar 2ue(o elemento 3

5parecer la siguiente /entana en la 2ue &a 2ue seleccionar Arc0i(o C-- 4+c//5$ darle un nom*re al arc&i/o de cdigo #uente terminado en +c$ por e6emplo &ola.c$ pulsar el *otn Agregar.

','

Informtica

Guin de Prcticas de Laboratorio 2012-2013

,. )e a*rir una pesta@a donde podemos escri*ir el cdigo #uente del programa"

-. Para compilar el programa &a 2ue seleccionar Generar solucin en el men= 6e/urar. En parte in#erior de la pantalla aparece una /entana denominada Aesultados donde /an apareciendo mensa6es durante la compilacin del cdigo posi*les errores 2ue existan. )i no &a &a*ido ning=n error$ se &a*r creado el programa e6ecuta*le 9B.exe: en el directorio 6ebug del pro ecto. Cam*iDn es posi*le e6ecutar el programa desde VC+ + seleccionando Iniciar de/uracin en el men= 6e/urar. 5l e6ecutar el programa aparecer la siguiente consola"

'-'

Informtica

Guin de Prcticas de Laboratorio 2012-2013

#+ Prctica !+ Entorno de /rogramacin y de/uracin+ 7/eradores y sentencias de control8 if9 s:itc0;case


E<ercicio !" ;esarrolle un programa 2ue lea un carcter en min=scula lo imprima en ma =scula. Cenga en cuenta 2ue las letras ma =sculas de la 5 a la E las min=sculas de la a a la 3 tienen cdigos consecuti/os 9/er ta*la 5)CII:. E<ercicio 2" Aedacte un programa 2ue solicite del usuario tres n=meros e indi2ue cul de ellos es el ma or. E<ercicio #" Escri*a un programa para detectar si un n=mero entero es m=ltiplo de , o no. E<ercicio =" Escri*a un programa 2ue permita con/ertir de grados Cent4grados a grados .a&ren&eit o /ice/ersa. El programa de*e mostrar dos opciones" 1: Con/ertir de grados Cent4grados a grados .a&ren&eit. 2: Con/ertir de grados .a&ren&eit a grados Cent4grados. <na /e3 elegida la opcin$ se solicitarn los grados correspondiente. 2ota" <tili3ar sentencia s:itc0;case. E<ercicio >" Escri*a un programa 2ue permita a/eriguar 2uD acrnimo est representado por los cdigos 5)CII" 101 11( 10, 11- 10,. E<ercicio ?" Escri*a un programa para con/ertir una cantidad de pesetas introducidas por el usuario en euros euros en dlares. Aecuerde 2ue 1FG1--.30- ptas 1.41HG1F. E<ercicio @" <na compa@4a de agua est implantando un nue/o sistema de co*ro. Para cada caso reali3a la siguiente #actura" 1os primeros ,0 litros son gratis. Entre ,0 200 litros se co*ra el litro a 0$0- euros. 5 partir de 200 litros se co*ra el litro a 0$10 euros. 1a cuota m4nima es de - euros$ es decir$ si el dinero a pagar resulta menor de - euros entonces el pago ser de - euros. se &ar la con/ersin

'('

Informtica

Guin de Prcticas de Laboratorio 2012-2013

Aealice un programa 2ue calcule el gasto de agua de una #amilia en un mes dada la cantidad de litros de agua. E<ercicio A" Constru a un programa 2ue realice las operaciones de suma$ resta$ multiplicacin di/isin. El programa de*er mostrar el siguiente men=" 5: Aeali3ar una suma I: Aeali3ar una resta C: Aeali3ar una multiplicacin ;: Aeali3ar una di/isin E: )alir del programa Introdu3ca su opcin" <na /e3 elegida la opcin se solicitarn dos n=meros correspondiente. 2ota" <tili3ar sentencia s:itc0;case. E<ercicio B" Escri*a un programa 2ue pida un c&ar e indi2ue 2uD tipo es" J1etra min=sculaK$ si es una letra min=scula 9entre LaM J1etra ma =scula$ si es una letra ma =scula 9entre L5M JN=meroK $ si es un d4gito numDrico 9entre L0M L+M: L?tM : JEspacioK$ si es un carcter de espacio o ta*ulador 9 L?*M J)4m*oloK$ en cual2uier otro caso L3M : LEM: se mostrar el resultado

JNo imprimi*leK$ si es otro carcter$ por de*a6o del carcter 5)CII 32.

'0'

Informtica

Guin de Prcticas de Laboratorio 2012-2013

=+ Prctica 2+ 1entencias de control8 bucles for9 :0ile y do;:0ile


E<ercicio !" Aeali3ar un programa en el 2ue se pida al usuario dos n=meros enteros. )e pide reali3ar la multiplicacin de los mismos a tra/Ds de la suma. Por e6emplo" 3x4 G 3+3+3+3$ o ,x10G ,+,+,+O 910 /eces:O+,. E<ercicio 2" Aeali3ar un programa 2ue calcule una aproximacin al n=mero PI$ mediante el sumatorio de los 100.000 primeros tDrminos de la serie 9 #inalmente multiplicada por 4:"

n= 0

1 1 1 1 1 1 = ...= 2n 1 1 3 , ( + 4

Nota" <til4cese un *ucle #or n=meros de precisin do*le 9dou*le:. )i no conoce este tipo de datos in/estigue acerca de Dl. E<ercicio #" Escri*ir un programa 2ue pida por teclado el radio 9dato real: de una es#era. En el caso de 2ue el radio sea menor o igual 2ue 0$ muestre por pantalla el mensa6e"
ERROR: El radio debe ser mayor que cero.

Aepita los pasos anteriores mientras 2ue el radio introducido sea incorrecto. Nota" <til4cese un *ucle do'%&ile. E<ercicio =" <n a@o es *isiesto si es di/isi*le por 4 no por 100 o *ien es di/isi*le por 400. >acer un programa 2ue pida al usuario un a@o muestre si es o no *isiesto. El programa se repite inde#inidamente$ &asta 2ue el usuario teclea un a@o negati/o. E<ercicio >" >acer un programa 2ue imprima los n=meros enteros de 5 a I$ contando de m en m. 1os /alores de 5 I sern asignados dentro del programa en cdigo$ mediante la iniciali3acin de las /aria*les en su declaracin. Por e6emplo$ 5G0 IG1+. El /alor de m ser introducido por el usuario desde el teclado. )i el usuario introduce un /alor de m menor 2ue 1$ el programa se lo /ol/er a pedir de #orma reiterada &asta 2ue el usuario introdu3ca un n=mero ma or o igual 2ue 1. E<ercicio ?" Escri*a un programa para generar los n primeros tDrminos de la serie de .i*onacci. El /alor de n 9entero positi/o: de*er ser le4do por teclado. En esta serie los dos primeros n=meros son 1$ el resto se o*tiene sumando los dos anteriores" 1$1$2$3$,$0$13$21. '+'

Informtica

Guin de Prcticas de Laboratorio 2012-2013

E<ercicio @" Escri*a un programa 2ue imprima todas las ta*las de multiplicar 9del 1 al +:$ de la siguiente manera"
1 x 1 = 1 1 x 2 = 2 ... 9 x 9 = 81 9 x 10 = 90

E<ercicio A" >a3 un programa 2ue imprima la ta*la de multiplicar de un n=mero n dado por el usuario. El programa de*e mostrar dos opciones para repetir la operacin" sPn. )i el usuario elige s$ se /uel/e a repetir la operacin. )i por el contrario elige n$ el programa #inali3a.

' 10 '

Informtica

Guin de Prcticas de Laboratorio 2012-2013

>+ Prctica #+ ,ectores9 cadenas y estructuras


E<ercicio !" Aealice un programa para calcular el /alor medio de un /ector de , elementos los cuales el usuario introduce por teclado. Calcule adems el mximo el m4nimo. E<ercicio 2" >a3 un programa 2ue cuente la longitud de una #rase introducida por teclado n=mero de /ocales. Nota" No se puede utili3ar la li*rer4a string.&. E<ercicio #" ;e#ina una estructura de datos fecha con los siguientes miem*ros"
int diaQ int mesQ int a@oQ

el

Escri*ir un programa 2ue$ dadas dos #ec&as$ indi2ue cul de las dos es anterior a la otra. E<ercicio =" ;ados dos puntos del plano cu as coordenadas son introducidas por el usuario$ se pide" a. Calcular la distancia entre los dos puntos. *. Indi2ue en 2uD cuadrante est cada punto. >aga dos soluciones di#erentes" =+!+ <tilice dos /ectores 9#loat punto1R2S #loat punto2R2S:. =+2+ <tilice una estructura punto con dos miem*ros x e . E<ercicio >" Aealice un programa en el 2ue el usuario introdu3ca una #rase. )ustitu a los espacios en *lanco por LTM adems indi2ue cuntas sustituciones &a reali3ado. E<ercicio ?" Aealice un programa 2ue lea los datos de un /ector de N enteros$ lo ordene de menor a ma or lo imprima por pantalla. E<ercicio @" Aealice un programa en la 2ue se introdu3ca una pala*ra por teclado re/Ds. ' 11 ' la imprima al

Informtica

Guin de Prcticas de Laboratorio 2012-2013

?+ Prctica =+ ,ectores de estructuras y matrices


E<ercicio !" ;ada la siguiente de#inicin de tipo de datos"
typedef struct c!ar pais"#0$% i&t temp max% i&t temp mi&% '(temp%

Escri*a un programa 2ue de#ina un /ector con los datos de N pa4ses permita introducirlos por teclado. El programa de*er mostrar el nom*re del pa4s 2ue &a tenido la mxima temperatura$ el 2ue &a tenido la m4nima $ #inalmente$ el nom*re de los pa4ses cu a temperatura m4nima sea in#erior a la media de las temperaturas m4nimas. E<ercicio 2" >aga un programa 2ue multipli2ue dos matrices matri3. .inalmente$ imprima la matri3 resultado. E<ercicio #" ;ada la siguiente de#inicin de tipo de datos"
typedef struct c!ar &ombre"#0$% c!ar telefo&o"10$% ' (co&tacto%

2ue almacene el resultado en otra

Escri*a un programa 2ue tenga un /ector con los datos de N contactos introducirlos por teclado.

permita

El programa permitir *uscar un telD#ono introduciendo el nom*re del contacto. El programa mostrar los datos de dic&o contacto o$ en caso contrario$ mostrar un mensa6e indicando 2ue no existe. E<ercicio =" ;ada una matri3 cuadrada$ &aga una programa 2ue indi2ue si es una matri3 diagonal o no. Nota" <na matri3 diagonal es una matri3 cuadrada en la 2ue las entradas son todas nulas sal/o en la diagonal principal$ Dstas pueden ser nulas o no. E<ercicio >" ;ada una matri3 de dimensin Nx7$ &aga un programa 2ue indi2ue cuntos n=meros primos &a en ella.

' 12 '

Informtica

Guin de Prcticas de Laboratorio 2012-2013

?+ Prctica >+ Cunciones con /aso /or (alor


E<ercicio !" Aealice un programa 2ue contenga una #uncin para calcular si un n=mero es par o impar. )i es par la #ucin de*e de/ol/er una JpK si es impar una JiK. 1a #uncin de*e ser llamada &asta 2ue el usuario presione JnK.
E)emplo de e)ecuci*&: Introduce un numero" 3 +umero impar ,esea co&ti&uar- .s/&0: s 1&troduce u& +umero par ,esea co&ti&uar- .s/&0: & 3i& &umero: 22

E<ercicio 2" Aealice una calculadora con las siguientes operaciones operaciones" suma de dos n=meros reales$ resta de dos n=meros reales$ /alor a*soluto de un n=mero real potencia de *ase real exponente entero. Cada una de las operaciones se de*e programar en #unciones di#erentes de*en retornar un /alor distinto de /oid.
40 Reali5ar u&a suma 60 Reali5ar u&a resta 70 Reali5ar el 8alor absoluto ,0 Reali5ar u&a pote&cia E0 9alir del pro:rama 1&trodu5ca su opci*&:

todas ellas

Aealice en primer lugar una #uncin 2ue muestre un men= con las siguientes opciones"

)i el usuario introduce las opciones 5$ I o C$ de*e pedir por pantalla los operandos correspondientes para cada una de las #unciones. )i el usuario introduce una opcin di#erente a las del men=$ de*e indicar 2ue la opcin no es /lida. )lo en el caso de 2ue el usuario introdu3ca C$ el programa #inali3ar mostrando el mensa6e" J.in de la calculadoraK. E<ercicio #" Aealice un programa 2ue llame a dos #unciones. <na de ellas calcular el /alor a*soluto de , n=meros introducidos por teclado. 1a otra #uncin reali3ar la media de los , n=meros positi/os.

' 13 '

Informtica

Guin de Prcticas de Laboratorio 2012-2013

E<ercicio =" Aealice una #uncin para calcular la recta 2ue pasa por dos puntos del plano introducidos por el usuario. Prototipo de la #uncin"
8oid recta.i&t x1; i&t y1; i&t x2; i&t y20%

' 14 '

Informtica

Guin de Prcticas de Laboratorio 2012-2013

A+ Prctica ?+ Cunciones con /aso /or referencia


E<ercicio !" Aealice una calculadora 2ue muestre por pantalla el siguiente men="
40 Reali5ar u&a suma 60 Reali5ar u&a di8isi*& 70 Reali5ar u&a rai5 cuadrada ,0 9alir del pro:rama 1&trodu5ca su opci*&:

El usuario de*er elegir una opcin pedir los /alores para reali3ar la operacin. En este caso para calcular el resultado &a*r 2ue llamar a una =nica #uncin con el siguiente prototipo"
8oid operacio& .i&t &1; i&t &2; c!ar op; float< resultado; i&t <error0%

siendo" n1$ n2" los dos n=meros pasados por /alor. op" parmetro pasado por /alor 2ue indica el tipo de operacin. resultado" es un parmetro pasado por re#erencia donde se almacena el resultado. error" es un parmetro pasado por re#erencia donde se almacena si la operacin se &a resuelto o no con Dxito. 1os posi*les /alores 2ue puede tomar son" '1" si &a &a*ido pro*lemas al reali3ar la operacin 9di/isin entre cero o la ra43 cuadrada de un n=mero negati/o:. 1" si la operacin conclu con Dxito. ;espuDs el programa de*er mostrar el resultado por pantalla e indicar si &a &a*ido alg=n error. E<ercicio 2" Aealice una #uncin 2ue calcule la distancia entre dos puntos cuadrantes de dic&os puntos. El prototipo de la #uncin es" 2ue calcule tam*iDn los

float dista&cia .i&t x1; i&t y2; i&t x2; i&t y2; i&t <cuad1; <cuad20%

El programa principal de*e solicitar los datos de los dos puntos por teclado posteriormente de*e imprimir la distancia los cuadrantes. E<ercicio #" Aealice un programa 2ue lea tres /alores enteros por teclado calcule el mximo el m4nimo. Para reali3ar el programa es imprescindi*le utili3ar las siguientes #unciones"
/oid leer;atos 9int Bn1$ int Bn2$ int Bn3:Q int maximo 9int n1$ int n2$ int n3:Q i&t minimo 9int n1$ int n2$ int n3:Q

' 1, '

Informtica

Guin de Prcticas de Laboratorio 2012-2013

B+ Prctica @+ Cunciones con (ectores9 cadenas y matrices


E<ercicio !" Aealice una #uncin 2ue reci*a un /ector de enteros El prototipo de la #uncin es" los con/ierta a su /alor a*soluto.

8oid 8alor=absoluto .i&t 8ector"$; i&t dim0%

El programa principal de*e pedir los /alores al usuario por teclado$ llamar a esta #uncin a imprimir el /ector #inal. E<ercicio 2" Aealice una #uncin 2ue reci*a una cadena 2ue contiene. El prototipo de la #uncin es" de/uel/a el n=mero de pala*ras /ocales

8oid co&tar .c!ar "$; i&t <; i&t <0%

El programa principal de*e pedir una #rase al usuario por teclado e imprimir el n=mero de pala*ras /ocales. E<ercicio #" Aealice una #uncin 2ue reci*a un /ector de enteros$ la dimensin del mismo los /alores mximo m4nimo. El prototipo de la #uncin es"
8oid maximo=mi&imo .i&t 8"$; i&t tam; i&t< max; i&t< mi&0%

de/uel/a

El programa principal de*e pedir los datos al usuario por teclado e imprimir los /alores mximo m4nimo. E<ercicio =" Aealice una #uncin 2ue reci*a como argumento una cadena$ cuente los caracteres de dic&a #rase modi#i2ue las consonantes por UBU. El programa principal de*e pedir una #rase al usuario por teclado e imprimir un texto donde indi2ue el n=mero de caracteres la #rase con asteriscos"
E<em/lo" 1&trodu5ca u&a frase: >ace u& dia soleado ?a frase i&troducida tie&e 18 caracteres: <a<e u< <ia <o<ea<o

E<ercicio >" Aealice una #uncin 2ue calcula de/uel/a como resultado la tra3a de una matri3 cuadrada reci*ida como parmetro. El programa principal de*e solicitar los datos de la matri3$ llamar a la #uncin e imprimir la tra3a por pantalla.

' 1- '

Informtica

Guin de Prcticas de Laboratorio 2012-2013

Nota" 1a tra3a de una matri3 cuadrada es la suma de los elementos de la diagonal principal. E<ercicio ?" Aealice una #uncin 2ue calcule el producto escalar de dos /ectores de n=meros enteros dimensin n. El prototipo de la #uncin es"
i&t producto=escalar .i&t 81"$; i&t 82"$; i&t &0%

El programa principal de*e solicitar la dimensin imprimir el resultado por pantalla.

los datos de los dos /ectores e

' 1( '

Informtica

Guin de Prcticas de Laboratorio 2012-2013

! + Prctica A+ Cunciones con estructuras y (ectores de estructuras


E<ercicio !" Aealice un programa 2ue calcule el per4metro de un tringulo$ siguiendo los pasos 2ue se indican a continuacin" ;ise@e una estructura 2ue represente un punto 9Tpunto) #ormada por sus coordenadas x e . V una estructura 2ue represente tringulos 9 Ttriangu o) utili3ando tres /Drtices 9cada /Drtices es un elemento de tipo punto:. Escri*a una #uncin llamada pedirTriangu o!Ttriangu o "t) 2ue solicite los datos de un tringulo al usuario para 2ue los introdu3ca por teclado. Escri*a una #uncin llamada imprimir#oordenadas!Tpunto p) 2ue sa2ue por pantalla las coordenadas de los puntos en este #ormato" 9xG2$ G3:. Escri*a una #uncin llamada distanciaPuntos!Tpunto p1$ Tpunto p2) 2ue de/uel/a la distancia entre dos puntos 2ue reci*e como parmetros de la #uncin. Escri*a una #uncin llamada imprimirTriangu o!Ttriangu o t) 2ue escri*a los /Drtices del tringulo en esta #orma$ por e6emplo" 93$2:$90$3:$9($,:. Escri*a una #uncin llamada perimetroTriangu o!Ttriangu o t) 2ue permita escri*ir el per4metro de un tringulo dado como parmetro. Nota" Para solucionarlo se entiende 2ue el per4metro de un tringulo es la suma de las distancias entre cada /Drtice. E<ercicio 2" ;ise@e una estructura Ta umno 2ue represente los datos de un alumno" nom*re$ nota de selecti/idad n=mero de matr4cula. Escri*a una #uncin ma%ima&ota !Ta umno a umnos'($ int dimension) 2ue reci*a un /ector de N alumnos calcule cul es la nota mxima de selecti/idad. El programa principal de*e imprimir la nota mxima E<ercicio #" ;ise@e un programa 2ue permita emular el comportamiento de la pila o stacW de un microprocesador. Para ello utilice la siguiente estructura"
typedef struct i&t datos"10$% i&t tope% ' @1?4%

los datos de ese alumno.

;e#ina las operaciones utili3ando pop9: 9introducir datos:$ pus&9: 9sacar datos en orden in/erso:$ cop 9: 9copiar datos en otra pila:$ empt 9: 9pila /ac4a" una /e3 #inali3ada la operacin pus& la pila de*e 2uedar /acia:$ #ull9: 9pila completa:. Inicialice la /aria*le tipo PI15 en el programa principal.

' 10 '

Das könnte Ihnen auch gefallen