Beruflich Dokumente
Kultur Dokumente
Informtica
Grado en Ingeniera en Electrnica Industrial y Automtica Grado en Ingeniera Elctrica Grado en Ingeniera Qumica
Informtica
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
!+ 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
;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
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
,. )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
'('
Informtica
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
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
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
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
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%
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
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
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
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
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
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
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%
' 1( '
Informtica
;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 '