Ejercicios del Tema 3 de PRJ_22Ene09

Anuncio
1.
Realizar un programa que simule una calculadora que haga las siguientes operaciones:
a.
b.
c.
d.
e.
f.
g.
Sumar 2 números.
Restar 2 números.
Multiplicar 2 números.
Dividir 2 números. Se debe comprobar que el segundo número sea distinto de 0.
Hallar la raíz cuadrada de un número. Se debe comprobar que el número es positivo o
0.
Hallar el seno de un número.
Hallar la tangente del número.
Utiliza funciones y la librería math.h para las funciones matemáticas.
Inicio Ej1
Real num_a, num_b, resultado
Entero operacion, kk
operacion=Pedir_Operacion()
Si (operacion>5) Entonces
num_a=Pedir()
sino
num_a=Pedir()
num_b=Pedir()
Fin si
Segun Operacion Hacer
1:resultado=Sumar(num_a, num_b)
2:resultado=Restar(num_a, num_b)
3:resultado=Multiplicar(num_a, num_b)
4:resultado=Dividir(num_a, num_b)
5:resultado=Raiz(num_a)
6:resultado=Seno(num_a)
7:resultado=Tangente(num_a)
Fin segun
kk=Mostrar(resultado)
Fin Ej1
Funcion Real Pedir()
Real valor
Escribir "Introduzca un valor : "
Leer valor
Devolver valor
Fin Funcion Pedir
Funcion Entero Pedir_Operacion()
Entero kk
Escribir "Que Quiere hacer? "
Escribir "1. Sumar"
Escribir "2. Restar"
Escribir "3. Multiplicar"
Escribir "4. Dividir"
Escribir "5. Raiz"
Escribir "6. Seno"
Escribir "7. Tangente
Escribir" Elija opción : "
Leer kk
Devolver kk
Fin Funcion Pedir_Operacion
Funcion Real Sumar(Real num_a, Real num_b)
Devolver num_a+num_b
Fin Funcion Sumar
Funcion Real Restar(Real num_a, Real num_b)
Devolver num_a-num_b
Fin Funcion Restar
Funcion Real Multiplicar(Real num_a, Real num_b)
Devolver num_a*num_b
Fin Funcion Multiplicar
Funcion Real Dividir(Real num_a, Real num_b)
Si (num_b=0) Entonces
Escribir "No se puede dividir por ser el dividendo 0"
Devolver 0
Sino
Devolver num_a/num_b
Fin si
Fin Funcion Dividir
Funcion Real Raiz(Real num_a)
/* Funcion en C que devuelve la raiz. */
Si (num_a<0) Entonces
Escribir "No se puede dividir por ser el dividendo 0"
Devolver 0
sino
Devolver RaizCuadrada(num_a)
Fin Funcion Raiz
Funcion Real Seno(Real num_a)
/* Funcion en C que devuelve el seno. */
Devolver Sin(num_a)
Fin Funcion Seno
Funcion Real Tangente(Real num_a)
/* Funcion en C que devuelve la tangente. */
Devolver Tan(num_a)
Fin Funcion Tangente
Funcion Entero Mostrar(real numero)
Escribir "El resultado es : ", numero
Fin Entero Mostrar
----------------------------------------------------------------------------------------------
#include <stdio.h>
#include <conio.h>
#include <math.h>
float Pedir();
int Pedir_Operacion();
float Sumar(float num_a, float num_b);
float Restar(float num_a, float num_b);
float Multiplicar(float num_a, float num_b);
float Dividir(float num_a, float num_b);
float Raiz(float num_a);
float Seno (float num_a);
float Tangente (float num_a);
int Mostrar(float numero);
void main()
{
float num_a, num_b, resultado;
int operacion, kk;
operacion=Pedir_Operacion();
if (operacion>5)
num_a=Pedir();
else
{
num_a=Pedir();
num_b=Pedir();
}
switch (operacion)
{
case 1:resultado=Sumar(num_a, num_b);break;
case 2:resultado=Restar(num_a, num_b);break;
case 3:resultado=Multiplicar(num_a, num_b);break;
case 4:resultado=Dividir(num_a, num_b);break;
case 5:resultado=Raiz(num_a);break;
case 6:resultado=Seno(num_a);break;
case 7:resultado=Tangente(num_a);break;
default:break;
}
kk=Mostrar(resultado);
getch();
}
float Pedir()
{
float valor;
printf("Introduzca un valor : ");
scanf("%f",&valor);
return valor;
}
int Pedir_Operacion()
{
int kk;
printf("Que quiere hacer?\n\n");
printf("1. Sumar\n");
printf("2. Restar\n");
printf("3. Multiplicar\n");
printf("4. Dividir\n");
printf("5. Raiz\n");
printf("6. Seno\n");
printf("7. Tangente\n\n");
printf("Elija opcion : ");
scanf("%d",&kk);
return kk;
}
float Sumar(float num_a, float num_b)
{
return num_a+num_b;
}
float Restar(float num_a, float num_b)
{
return num_a-num_b;
}
float Multiplicar(float num_a, float num_b)
{
return num_a*num_b;
}
float Dividir(float num_a, float num_b)
{
if (num_b==0)
{
printf("No se puede dividir por ser el dividendo 0");
return 0;
}
else
return num_a/num_b;
}
float Raiz(float num_a)
{
if (num_a<0)
{
printf("No se puede hallar la raiz de un numero negativo.");
return 0;
}
else
return sqrt(num_a);
}
float Seno (float num_a)
{
return sin(num_a);
}
float Tangente (float num_a)
{
return tan(num_a);
}
int Mostrar(float numero)
{
printf("El resultado es : %2.f", numero);
return 0;
}
2.
Realiza un programa que pida una palabra y determine cuantas vocales tiene. Utiliza funciones.
Inicio Ej2
Ristra palabra
Entero num_vocales, kk
palabra=Pide_Palabra()
num_vocales=CuentaVocales(palabra)
kk=Mostrar(num_vocales, palabra)
Fin Ej2
Funcion Ristra Pide_Palabra()
Ristra Pal
Escribir "Introduzca una palabra : "
Leer Pal
Devolver Pal
Fin Funcion Pide_Palabra()
Funcion Entero CuentaVocales(Ristra palabra)
Entero kk, i, num, vocal
vocal=0
// numeroletras es una funcion en C que devuelve la longitud de palabra.
num=numeroletras(palabra)
Para i desde 1 hasta num hacer
// AMinuscula es la funcion tolower de C que pasa a minusculas el caracter.
// La funcion Caracter es de C que devuelve la letra que ocupa la posición i.
Si ((AMinuscula(Caracter(palabra, i,1))='a') o (AMinuscula(Caracter(palabra, i,1))='e') o
(AMinuscula(Caracter(palabra, i,1))='i') o (AMinuscula(Caracter(palabra, i,1))='o') o
(AMinuscula(Caracter(palabra, i,1))='u'))
vocal=vocal+1
Fin si
Fin Para
Devolver vocal
Fin Funcion CuentaVocales
Funcion Entero Mostrar(Entero num_Vocales, Ristra palabra)
Escribir "La palabra "+palabra+" tiene "+num_vocales+" vocales."
Devolver 1
Fin Funcion Mostrar
---------------------------------------------------------------------------------------------
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <string.h>
int Pide_Palabra(char palabra[30]);
int CuentaVocales(char palabra[30]);
int Mostrar(int num_Vocales, char palabra[30]);
void main()
{
char palabra[30];
int num_vocales, kk;
kk=Pide_Palabra(palabra);
num_vocales=CuentaVocales(palabra);
kk=Mostrar(num_vocales, palabra);
getch();
}
int Pide_Palabra(char palabra[30])
{
printf("Introduzca una palabra : ");
scanf("%s",palabra);
return 1;
}
int CuentaVocales(char palabra[30])
{
int kk, i, num, vocal;
vocal=0;
num=strlen(palabra);
for (i=1;i<num+1;i++)
{
if ((tolower(palabra[i-1])=='a') || (tolower(palabra[i-1])=='e') ||
(tolower(palabra[i-1])=='i') || (tolower(palabra[i-1])=='o') ||
(tolower(palabra[i-1])=='u'))
vocal++;
}
return vocal;
}
int Mostrar(int num_Vocales, char palabra[30])
{
printf("\nLa palabra %s tiene %d vocales.\n",palabra, num_Vocales);
return 1;
}
3.
Pide 5 palabras, almacénalas en un vector y determina cuántas de ellas acaban en consonante.
Inicio Ej3
Ristra v[5], palabra
Entero i, kk, Cont
Cont=0
kk=InicializarVectordeRistras(v)
kk=PedirPalabrasaRistras(v)
Para i desde 0 hasta 4 hacer
Si UltimaLetraEsConsonante(v[i]) Entonces
Cont=Cont+1
Fin Si
Fin Para
kk=Mostrar(Cont)
Fin Ej3
Funcion Entero InicializarVectordeRistras(Ristra v[])
Entero i
Para i desde 0 hasta 4 hacer
v[i]=' '
Fin Para
Fin Funcion InicializarVectordeRistras
Funcion Entero PedirPalabrasaRistras(Ristra v[])
Entero i
Ristra palabra
Para i desde 0 hasta 4 hacer
Leer palabra
v[i]=palabra
Fin Funcion PedirPalabrasaRistras
Funcion Logica UltimaLetraEsConsonante(Ristra a)
Entero long
// Longitud es la funcion strlen de C que determina la longitud de una palabra.
long=Longitud(a)
// AMinuscula es la funcion tolower de C que pasa a minusculas el caracter.
// La funcion Caracter es de C que devuelve la letra que ocupa la posición i.
Si ((AMinusculas(Caracter(a,long,1)<>'a')) Y (AMinusculas(Caracter(a,long,1)<>'e')) Y
(AMinusculas(Caracter(a,long,1)<>'i'))
Y (AMinusculas(Caracter(a,long,1)<>'o')) Y (AMinusculas(Caracter(a,long,1)<>'u'))) Entonces
Devolver Verdadero
Sino
Devolver Falso
Finsi
Fin Funcion UltimaLetraEsConsonante
Funcion Entero Mostrar(Entero Cont)
Escribir "Hay "+Cont+" palabras que acaban en consonante"
Fin Funcion Mostrar
--------------------------------------------------------------------------------------------
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
#include <string.h>
int InicializarVectordeRistras(char v[5][30]);
int PedirPalabrasaRistras(char v[5][30]);
int UltimaLetraEsConsonante(char a[30]);
int Mostrar(int cont);
void main()
{
char v[5][30], palabra[30];
int i, kk, Cont;
Cont=0;
kk=InicializarVectordeRistras(v);
kk=PedirPalabrasaRistras(v);
for (i=0;i<5;i++)
{
if (UltimaLetraEsConsonante(v[i]))
{
Cont++;
}
}
kk=Mostrar(Cont);
getch();
}
int InicializarVectordeRistras(char v[5][30])
{
int i;
for (i=0;i<5;i++)
{
v[i][0]='\0';
}
return 1;
}
int PedirPalabrasaRistras(char v[5][30])
{
int i;
char palabra[30];
for (i=0;i<5;i++)
{
printf("\nIntroduzca la palabra %d : ",i+1);
scanf("%s",v[i]);
}
return 1;
}
int UltimaLetraEsConsonante(char a[30])
{
int lon, i;
lon=strlen(a);
i=0;
while (a[i]!='\0')
i++;
printf("\n");printf("%c ",tolower(a[i-1]));
if ((tolower(a[i-1])!='a') && (tolower(a[i-1])!='e') && (tolower(a[i-1])!='i')
&& (tolower(a[i-1])!='o') && (tolower(a[i-1])!='u'))
{
return 1;
}
else
{
return 0;
}
}
int Mostrar(int cont)
{
printf("\n\nHay %d palabras que acaban en consonante", cont);
return 1;
}
Descargar