Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Mostrar Los Multiplos de 3 Comprendidos Entre Los Numeros 1 y 20
Mostrar Los Multiplos de 3 Comprendidos Entre Los Numeros 1 y 20
Código:
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
int main ()
{
clrscr();
for (int i=1;i<=20;i++)
{
cout<<i;
if (i%3==0) cout<<" Es multiplo de 3" <<endl;
else cout<<" No es multiplo de 3"<<endl;
}
getch();
return 0;
}
Código:
#include <stdio.h>
#include <conio.h>
int main ()
{
int numero, sum_dig=0;
printf("Inserte un numero de 3 digitos: "); scanf("%d",&numero);
if (numero>=100)
{
int num=numero; //salvamos en num, la variable numero
while (numero!=0)
{
sum_dig=sum_dig+(numero%10); //para sacar el ultimo digito de numero
numero=numero/10; //elimina el ultimo digito de numero
}
printf("La suma de los digitos de %d es : %d",num, sum_dig);
}
else
printf("\a ERROR: El digito no tiene 3 digitos");
getch();
}
Código:
#include <stdio.h>
#include <conio.h>
int main ()
{
int numero;
printf("Inserte num. de dos digitos pares: ");
scanf("%d",&numero);
int aux=numero;
if(numero<100 && numero>9)
{
int d1=numero%10;
numero=numero/10;
int d2=numero%10;
if(d1%2==0 & d2%2==0)
printf("El promedio d los digitos de %d es: %d",aux,(d1+d2)/2);
}
else
printf("\aERROR: el numero no tiene dos digitos");
getch();
}
Dados seis numeros enteros determinar, el menor de ellos
Código:
#include<stdio.h>
#include<conio.h>
int main()
{
int a, b, c, d, e, f;
printf("Inserte num.1: "); scanf("%d",&a);
printf("Inserte num.2: "); scanf("%d",&b);
printf("Inserte num.3: "); scanf("%d",&c);
printf("Inserte num.4: "); scanf("%d",&d);
printf("Inserte num.5: "); scanf("%d",&e);
printf("Inserte num.6: "); scanf("%d",&f);
int menor=a;
if(b<menor) menor=b;
if(c<menor) menor=c;
if(d<menor) menor=d;
if(e<menor) menor=e;
if(f<menor) menor=f;
printf("El menor de %d,%d,%d,%d,%d,%d ",a,b,c,d,e,f);
printf("\nEs %d",menor);
getch();
}
Código:
#include <stdio.h>
#include <conio.h>
int facto (int x)
{
int f=1;
for (int i=1;i<=x;i++)
{f=f*i;}
return (f);
}
int main ()
{
int n, serie=2, suma=0;
printf ("Inserte cantidad de terminos a generar: "); scanf ("%d",&n);
for (int i=1;i<=n;i++)
{
printf ("%d! + ",serie);
suma=suma+(facto(serie));
serie=serie+2;
}
printf (" = %d",suma);
getch();
}
Código:
#include <stdio.h>
#include <conio.h>
int main ()
{
int serie=1;
bool sw=true;
do
{
printf("%d, ",serie);
if (sw) serie+=4;
else serie-=2;
sw=!sw;
} while (serie<=23);
getch();
}
/*Dado el vector T de tamao n. Si el tamao es par invertir los elementos de la mitad de los elementos
Ejemplo: v=[1][2][3][4][5][6] v(invertido)=[3][2][1][6][5][4]
*/
Código:
#include<stdio.h>
#include<conio.h>
fin1 = d;
for (int j = (d / 2) + 1 ; j <= (d / 2) + 1 ; j++)
{
aux1 = V [j];
V [j] = V [fin1];
V [fin1] = aux1;
fin1--;
}
}
int main ()
{
int V[20];
int d;
printf ("Inserte dimen. del vector: "); scanf("%d",&d);
llenar (V, d);
printf ("\nVECTOR ORIGINAL: \n");
mostrar (V, d);
printf ("\n\nVECTOR LUEGO DE LA INVERSION: \n");
invierte (V, d);
mostrar (V, d);
getch();
}
Código:
#include <stdio.h>
#include <conio.h>
void llenar (int V[20], int d)
{
for (int i = 1 ; i <= d ; i++)
{
printf ("Inserte pos.[%d]: ",i);
scanf("%d",&V[i]);
}
}
int main ()
{
int V[20];
int d, x;
printf("Inserte dimen. del vector: ");
scanf("%d",&d);
printf ("Inserte valor de (x): ");
scanf("%d",&x);
llenar (V, d);
printf("\nVECTOR: ");
mostrar (V, d);
evalua (V, d, x);
getch();
}
Generar la matriz:
[01][02][03][04]
[08][07][06][05]
[09][10][11][12]
Código:
#include<stdio.h>
#include<conio.h>
void llenar (int M[20][20], int f, int c)
{
int k=1;
for (int i=1;i<=f;i++)
{
if (i%2!=0)
{
for (int j=1;j<=c;j++)
{
M[i][j]=k; k++;
}
}
else
{
for (int j=c;j>=1;j--)
{
M[i][j]=k; k++;
}
}
}
}
int main ()
{
int f, c;
int M[20][20];
printf("Inserte filas de M: "); scanf("%d",&f);
printf("Inserte cols. de M: "); scanf("%d",&c);
llenar(M, f, c);
mostrar(M, f, c);
getch();
}
Generar la matriz:
[01][02][03][04]
[05][06][07][00]
[08][09][00][00]
[10][00][00][00]
Código:
#include <stdio.h>
#include <conio.h>
void llenar (int M[20][20], int d)
{
int cont=1;
for (int i=1;i<=d;i++)
{
for (int j=1;j<=d;j++)
{
if ((i+j)<=(d+1))
{M[i][j]=cont; cont++;}
else
M[i][j]=0;
}
}
}
int main ()
{
int d;
int M[20][20];
printf("Insert dimen: "); scanf("%d",&d);
llenar(M, d);
mostrar(M, d);
getch();
}
Código:
#include <stdio.h>
#include <conio.h>
void intercambiar (int A[20][20], int fa, int ca, int B[20][20], int fb, int cb)
{
int min_a = menor (A, fa, ca);
int max_b = maximo (B, fb, cb);
//para cambiar los minimos de A con los maximos de B
for (int i = 1 ; i <= fa ; i++)
{
for (int j = 1 ; j <= ca ; j++)
{
if (A[i][j] == min_a)
A[i][j]=max_b;
}
}
//para intercambiar los maximos de con los minimos de A
for (int i = 1 ; i <= fb ; i++)
{
for (int j = 1 ; j <= cb ; j++)
{
if (B[i][j] == max_b)
B[i][j]=min_a;
}
}
}
int main ()
{
int A [20] [20];
int B [20] [20];
int fa, ca, fb, cb;
printf ("Insert filas de A: "); scanf("%d",&fa);
printf ("Insert columnas de A: "); scanf("%d",&ca);
printf ("Insert filas de B: "); scanf("%d",&fb);
printf ("Insert columnas de B: "); scanf("%d",&cb);
//lectura de matrices
printf ("\nINSERTANDO DATOS EN MATRIS A: \n");
llenar (A, fa, ca);
printf ("\nINSERTANDO DATOS EN MATRIS B: \n");
llenar (B, fb, cb);
printf ("\nMATRICES ORIGINALMENTE INSERTADAS: ");
mostrar (A, fa, ca);
printf ("\n");
mostrar (B, fb, cb);
printf ("\n");
//intercambiando elementos
intercambiar (A, fa, ca, B, fb, cb);
printf ("\nMATRICES DESPUES DEL INTERCAMBIO:");
mostrar (A, fa, ca);
printf ("\n");
mostrar (B, fb, cb);
getch();
}
Código:
#include <stdio.h>
#include <conio.h>
int main()
{
int M [20] [20];
int d;
printf ("Inserte dimen. de la matris cuadrada: ");
scanf("%d",&d);
llenar (M, d);
printf ("\nMATRIS ORIGINAL: ");
mostrar (M, d);
printf ("\n\nMATRIS CON LA DIAGONAL PRINCIPAL INVERTIDA: ");
invierte (M, d);
mostrar (M, d);
getch();
}
Código:
#include <stdio.h>
#include <conio.h>
void llenar (int M[20][20], int d)
{
for (int i = 1 ; i <= d ; i++)
{
for (int j = 1 ; j <= d ; j++)
{
printf ("Inserte pos[%d][%d]: ",i, j);
scanf("%d",&M [i] [j]);
}
}
}
int main()
{
int M [20] [20];
int d;
printf ("Inserte dimen. de la matris cuadrada: ");
scanf("%d",&d);
llenar (M, d);
printf ("\nMATRIS ORIGINAL: ");
mostrar (M, d);
printf ("\n\nMATRIS CON LA DIAGONAL SECUNDARIA INVERTIDA: ");
invierte (M, d);
mostrar (M, d);
getch();
}
/*Dada dos matrices de diferentes tamanios R y S mostrar los elementos comunes de R en S*/
Código:
#include <stdio.h>
#include <conio.h>
void comunes (int R[20][20], int fr, int cr, int S[20][20], int fs, int cs)
{
printf("\n\nLos elementos comunes de R en S son: ");
for (int i = 1 ; i <= fr ; i++)
{
for (int j = 1 ; j <= cr ; j++)
{
for (int k = 1 ; k <= fs ; k++)
{
for (int l = 1 ; l <= cs ; l++)
{
if (R [i] [j] == S [k] [l])
printf ("[%d]",R [i] [j]);
}
}
}
}
}
int main()
{
int R [20] [20];
int S [20] [20];
int fr, cr, fs, cs;
printf("Inserte filas de R: ");
scanf("%d",&fr);
printf("Inserte columnas de R: ");
scanf("%d",&cr);
printf("Inserte filas de S: ");
scanf("%d",&fs);
printf("Inserte columnas de S: ");
scanf("%d",&cs);
Código:
#include <stdio.h>
#include <conio.h>
int main ()
{
int M [20] [20];
int f, c;
printf ("Inserte filas de la matris: ");
scanf("%d",&f);
printf ("Inserte columnas de la matris: ");
scanf("%d",&c);
Código:
#include <stdio.h>
#include <conio.h>
int main ()
{
int M [20] [20];
int f, c;
printf ("Inserte filas de la matris: ");
scanf("%d",&f);
printf ("Inserte columnas de la matris: ");
scanf("%d",&c);
Código:
#include <stdio.h>
#include <conio.h>
int main ()
{
int M [20] [20];
int f, c, numero;
printf ("Inserte filas de la matris: ");
scanf("%d",&f);
printf ("Inserte columnas de la matris: ");
scanf("%d",&c);
Código:
#include <stdio.h>
#include <conio.h>
int main()
{
int M [20] [20];
int V [20];
int f, c, d;
printf ("Inserte filas de la matris: ");
scanf("%d",&f);
printf ("Inserte columnas de la matris: ");
scanf("%d",&c);
printf ("Inserte dimension del vector: ");
scanf("%d",&d);
Código:
#include <stdio.h>
#include <conio.h>
int sw = 1;
for (int j = 1 ; j <= c ; j++)
{
for (int k = 1 ; k <= d ; k++)
{
if (M [j] [i] != V [k])
sw = 0;
}
}
if (sw == 1)
printf ("\n\nLa columna %d es igual al vector",i);
}
}
int main ()
{
int M [20] [20];
int V [20];
int f, d;
printf ("Inserte filas de la matris: ");
scanf("%d",&f);
printf ("Inserte dimension del vector: ");
scanf("%d",&d);
Código:
#include <stdio.h>
#include <conio.h>
int main ()
{
int Z [20] [20];
int A [20];
int B [20];
int f, c;
printf ("Inserte filas de la matris: ");
scanf("%d",&f);
printf ("Inserte columnas de la matris: ");
scanf("%d",&c);
C Básico
Ejercicio 100
Escribir un programa que solicite una temperatura y sistema de medición (celsius o farenheit) y que haga la conversión al otro
sistema.(para pasar a farenheit y=5/9X-32) x=grados celsius
Ejercicio 101
Escribir un programa para el arqueo de caja de una tienda.
Se pide cuantas monedas de 1 centimo
Cuantas monedas de 2 centimos
Cuantas monedas de 5 centimos
Cuantas monedas de 10 centimos
Cuantas monedas de 20 centimos
Cuantas monedas de 50 centimos
Cuantas monedas de 1 Euro
Cuantas monedas de 2 Euros
Cuantos billetes de 5 Euros
Cuantos billetes de 10 euros
Cuantos billetes de 20 Euros
Cuantos billetes de 50 Euros
Cuantos billetes de 100 Euros
Cuantos billetes de 200 Euros
Cuantos billetes de 500 Euros
y calcular la suma total en euros
Ejercicio 102
Escribir un programa que solicite una cantidad entera en formato decimal y la convierta a binario y hexadecimal
Ejercicio 103
Escribir un programa que solicite tres números reales A, B y C y calcule Ax2+Bx+C=0
Ejercicio 104
Escribir un programa que solicite un año e indique si es bisiesto o no
Un año es bisiesto si es múltiplo de 4 excluyendo aquellos que son múltiplo de 100 y no de 400.
Ejercicio 105
Escribir un programa que calcule los 100 primeros números primos
Ejercicio 106
Escribir un programa que pregunte un número entero entre uno y 9 y genere la tabla de multiplicar de ese númeroen el siguiente
formato (p. ej el 7)
7x1=7
7 x 2 = 14
t x 3 = 21
7 x 4 = 28
7 x 5 = 35
...
7 x 10 = 70
Ejercicio 124
Conociendo las monedas y billetes que están en caja pedir el precio de compra de un producto y que el programa diga los cambios
que hay que devolver(no solo el importe sino como distribuirlo en monedas y billetes)
Para ello primero hay que preguntar que monedas y billetes tenemos y luego que cantidad hay que cobrar.
Ejercicio 107
Realizar un programa que solicite una cantidad entera. Dada esa cantidad X debe solicitar X números y ordenarlos de mayor a
menor
Ejercicio 108
Realizar un programa que solicite el nombre, dirección y teléfono de 5 personas. Una vez metidos preguntará un número entre 1 y
5 para sacar la información de esa persona.
El cero termina
Ejercicio 119
Realizar un programa que solicite una máscara de subred y devuelva una ip válida.
Ejercicio 127
Comprobar que una codificacion de tarjeta de credito es valida,y si nos es valida t dice k numero tienes k cambiarle para hacerla
valida.
El numero se compone de tres partes principales:
Los 4 primeros digitos componen el identificativo del banco que cede la tarjeta.hay un numero diferente para cada banco(esto se busca en
internet).
El 5 digito es el tipo de tarjeta e indica que entidad financiera gestiona esta tarjeta.Las mas importantes son Visa(4),american Expres(3),Master
card(5),Discover(6).
los 10 digitos siguientes componen el numero de usuario e identifican a este de manera unica.
Digito de control es el ultimo numero y se obtiene aplicando un algoritmo al resto del numero.
El formato es el siguiente 1111 2333 3333 3334
algoritmo de codificacion:
Se realiza en tres pasos.
Si tenemos el numero de la tarjeta 4539 4512 0398 7356 y queremos comprobar que es válido:
1.Multiplicamos por dos los numeros de las posiciones imapres(4-3-4-1-0-9-7-5) y dejarlos con un solo digito.
4*2=8
3*2=6
4*2=81*2=2
0*2=0
9*2=18-->1+8=9
7*2=14--->1+4=5
5*2=10--->1+0=1
2.Sumar los digitos de las posiciones pares y los nuevos de las posiciones impares.
5+9+5+2+3+8+6+ 8+6+8+2+0+9+5+1=80
Acceso a ficheros
Ejercicio 122
Escribir un programa que solicite palabras y las agrege a un fichero llamado c:\diccionario de forma que luego se puedan
consultar las palabras una a una
Ejercicio 109
Escribir un fichero que contenga 255 caracteres cualesquiera y los guarde en c:\exploit.exe
Ejercicio 110
Comprobar si existe el fichero c:\exploit.exe y si existe que lo lea y lo conserve en un array
Ejercicio 111
Escribir un programa que lea el archivo c:\exploit.exe y genere un archivo c:\ExploitCompleto.exe que será un archivo ejecutable.
Al ejecutarse hace:
a) crea el archivo exploit.exe (lo tiene metido en un array)
b) realiza una serie de comprobaciones (las que queramos)
c) según el resultado de esas comprobaciones (figuradamente versión del sistema operativo por ejemplo) ejecuta exploit.exe con el parámetro
correspondiente a la versión obtenida
Esas comprobaciones pueden ser sumar dos números aleatorios y si es par usar un parámetro, si es impar usar otro.
Naturalmente si en exploit.exe no hay un código real no funcionará, pero quizá podais intentar meter allí un código real que haga algo
Ejercicio 112
Realizar un keylogger que detecte las pulsaciones y las escriba a un fichero llamado log.txt utilizando las apis de windows
Comunicaciones
Ejercicio 113
Escribir un programa que escuche en el puerto 4500
Ejercicio 114
Escribir un programa que haga ping para encontrar un servidor que escuche en el puerto 4500
Ejercicio 115
Escribir un programa en que en el que un servidor escucha en el puerto 4500 y si un cliente intenta conectarse se le envía una
paquete donde se le solicita que se identifique y queda a la escucha para recibir identificación.
Si el cliente es aceptado se le envía al cliente una aceptación
Si el cliente es rechazado se le envía al cliente una denegación
Ejercicio 116
Realizar una aplicación de cliente que busque a un servidor mediante un ping y si lo encuentra le envie un paquetecon la siguiente
información:
código = 1
Nombre de usuario (obligatoriamente 20 caracteres)
contraseña: (obligatoriamente 10 caracteres)
ip_local: la ip del cliente
puerto_local (el puerto donde escuchar la respuesta)
y quede a la escucha para recibir aceptación
Ejercicio 126
Realizar una aplicación que solicite usuario y contraseña y carpeta e intente realizar una sesión ftp con ese usuario y contraseña
para subir todos los archivos que estén en esa carpeta.
Si se llama a la aplicación con el parámetro /D entonces en vez de subirlos baja todos los archivos que estén allí a esa carpeta.
Se considera que todos los archivos son texto.
Operaciones de bit
Ejercicio 117
escribir un programa al que solicita una máscara de subred en formato decimal. El programa devolverá todas las subredes con la
siguiente información: Dirección de red, rango de direcciones válido, dirección de broadcast
Ejercicio 118
Escribir un programa que solicita una máscara de subred y dos direcciones ip. El programa informará si ambas direcciónes están
en la misma subred o no
Seguridad
Ejercicio 120
Realizar un programa que solicite una clave y luego por iteraciones encuentre la clave
Ejercicio 121
Realizar un programa que solicite una clave y luego buscando en un diccionario de palabras del ejercicio 122 intente encontrar la
clave
Ejercicio 123
Escribir un programa que solicite usuario y contraseña. La contraseña se cifra como querais y se vuelve a solicitar contraseña
(para verificar).Se cifra y se compara con la anterior (es decir no se comparan las contraseñas sino su resultado cifrado).
Ejercicio 125
Escribir un programa que permita codificar/descodificar una determinada clave que se pasa como argumento.Si se pasa el
parámetro /c hay que codificar. Si se pasa el parámetro /d hay que descodificar. Si no se pone se asume '/c'. Si no se pone clave no hace nada.
El formato será por tanto "aplicación [/d /c] clave
El sistema de cifrado será base64
1º.
Crear un programa en C que solicite números enteros positivos distintos de 0 hasta que el usuario desee terminar, que será cuando introduzca
un número negativo. Por cada número introducido se deberá visualizar:
Para resolver el ejercicio, deberás utilizar tres funciones fuera del main: una que te diga si un numero es primo o no; otra que te devuelva la
suma de los números primos; y otra que te imprima por pantalla los múltiplos del númeo.
Por ejemplo:
Introduzca un número: 5
Es primo
Suma de todos los primos anteriores: 6
Introduzca un número: 9
No es primo.
Sus múltiplos: 9, 18, 27, 36, 45, 54, 63, 72, 81, 90
2º Examen
Realiza un programa que rellene un vector de 12 elementos con números enteros positivos introducidos por teclado por el usuario. A
continuación realiza las siguiente tareas mediante el uso de funciones, una por cada punto y en el orden indicado:
Calcula la media aritmética de los elementos mayores que 15 del vector e imprime por pantalla el resultado, además de los números
que han sido utilizados para la media.
Indica si la media de los elementos que ocupan posiciones pares es mayor, menos o igual que la media de los elementos que ocupan
posiciones impares en el vector.
Busca e imprime todos los divisores del elemento que ocupa la posición 2 en el vector.
Utiliza una función para intercambiar de posición los elementos mayor y menor del vector. Despues imprime el vector en el main
para ver el cambio.
Ejemplo:sea el vector 10 15 20 4 6 5 6 8 9 2 16 33
Divisores de 20: 10 20 4 5 2
1) elaborar una función que reciba una matriz y el número de filas y de columna. La función debe devolver el número 1 si existe algún número
primo en la matriz el número 2 si existe algún número perfecto. Se debe retornar el numero 0 de contrario.
2)elaborar una función que reciba dos arreglos a y b y un numero n que indica la máxima capacidad del arreglo b y permita concatenar los
arreglos. La concatenación debe quedar almacenada en el arreglo b. si la longitud del arreglo b no es suficiente para la concatenación, los
arreglos deben quedar con los datos originales y se debe retornar el numero -1. Si el proceso se pudo hacer, se debe devolver el numero 1. Por
ejemplo si el contenido de a y b es:
a) a -b -c - x -y -z - \0
b) 1 - 4 - b - z - \0
y la máxima capacidad de b es n=20, se debe devolver numero 1 y el arreglo b queda con los siguientes datos :
b) 1 - 4 - b - z - a - b - c- x -y - z- \0
3) Elaborar un programa que lea 9 numeros y los cargue un una matriz de 3 filas y 3 columnas. El programa debe calcular la trasnpuesta de la
matriz leida. Se debe imprimir la transpuesta. Los datos se informan por columnas, por ejemplo si los datos son:
4,5,1,3,8,2,1,8,7
La matriz debe quedar cargada asi:
4 3 1
5 8 8
1 2 7
Ejercicios matematicos
Ejercicio nº1:
Ejercicio nº 2:
- A partir del algoritmo del ejercicio anterior, crear numeros aleatorios validos para una letra del DNI previamente introducida.
Ejercicio nº 3:
- Crear una aplicacion que te pida un año y verifique si el año esbisiestoo no.
Ejercicio nº 4:
Ejercicio nº 5:
- Crear uina aplicacion que pida un numero de filas y respecto a estas, dibuje un triangulo como el siguiente:
*
***
*****
*******
*********
Ejercicio nº 6:
- Crear una alpicacion que pida un numero y lo devuelva en letras, por ejemplo:
Ejercicio nº 7:
- Crear una funcion para hacer un diccionario de fuerza bruta de 4 filas y lo guarde todo en un fichero.
aaaa
aaab
aaac
aaad
aaae
..
..
..
zzzy
zzzz
ejercicio nº 8:
- Crear una funcion la cual se le introduzca el nombre de un archivo de texto y lo guarde, palabra por palabra, por ejemplo:
Archivo resultado:
Esto
son
ejercicios
para
aprender
a
programar
en
C#
Texto a ordenar:
Leonardo de Pisa o Leonardo Pisano o Leonardo Bigollo, también llamado Fibonacci, fue un matemático italiano, famoso por la invención de la
sucesión de Fibonacci, surgida como consecuencia del estudio del crecimiento de las poblaciones de conejos, y por su papel en la popularización
del sistema de numeración posicional en base 10 en Europa.
Ejercicio nº 9:
- Crear una funcion la cual, a partir del Archivo resutlado del anterior ejercicio, lo ordene alfabeticamente y lo deje del mismo formato que el
Archivo resultado (es decir, linea a linea).
Creo que ya es suficiente, a medida que vaya apsando el tiempo, si nadie lo postea, posteare yo mismo las soluciones (estos ejercicios son
facilitos, es lo unico que se me venia a la cabeza).
Ejercicio 1:
Escribe un programa que calcule la letra del NIF a partir del número del DNI. La letra se obtiene calculando el resto de la división del número del
DNI por 23. A cada resultado le corresponde una letra: 0=T; 1=R; 2=W; 3=A; 4=G; 5=M; 6=Y; 7=F; 8=P; 9=D; 10=X; 11=B; 12=N; 13=J;
14=Z; 15=S; 16=Q; 17=V; 18=H; 19=L; 20=C; 21=K; 22=E.
Ejemplo:
Dime tu DNI: 19901130
Ejercicio 2:
Escribe un programa que convierta números inferiores a 5000 escritos con cifras árabes en números escritos con números romanos. El valor de
los diferentes números romanos es el siguiente: I=1, V=5, X=10, L=50, C=100, D=500, M=1000. Para hacer más fácil el ejercicio, puedes
utilizar la notación romana antigua, en que podía haber hasta cuatro símbolos iguales seguidos.
Ejemplo:
Dime un número: 3799
Ejercicio 3:
Escribe un programa que pida dos años y calcule el número de años bisiestos que hay entre esos dos años (incluyendo los dos años) y el número
de días total entre esos dos años (incluyendo los dos años).
Ejemplo:
Dime un año: 1800
Entre 1800 y 1900 (ambos incluidos) hubo 24 años bisiestos y en total 36889 días.
Ejercicio 4:
Escribe un programa que te permita jugar a una versión simplificada del juego Master Mind. El juego consistirá en adivinar una cadena de
números distintos. Al principio, el programa debe pedir la longitud de la cadena (de 2 a 9 cifras). Después el programa debe ir pidiendo que
intentes adivinar la cadena de números. En cada intento, el programa informará de cuántos números han sido acertados (el programa
considerará que se ha acertado un número si coincide el valor y la posición).
Ejemplo:
Dime la longitud de la cadena: 4
Ejercicio 5:
Escribe un programa que sea capaz de jugar al Master Mind con las reglas del ejercicio anterior. Al principio, el programa debe pedir la longitud
de la cadena (de 2 a 9 cifras). Después, el programa debe ir intentando adivinar la cadena de números.
Ejemplo:
Dime la longitud de la cadena: 4
Calculadoar aritmética
-> Generador de números de Fibonacci
-> Generador de números de lotería aleatórios
-> Averiguar si un número es capicua o no.
-> Calculos de: TBN, TBM, y áreas de circulos
-> Operaciones aritméticas con números en coma flotante
1. Calcular la suma de los valores del intervalo [1 – 20], para cada operación de sumatoria parcial determine.
a. Si la misma es un número primo.
b. Factorial de la suma parcial.
c. Sumatorias parciales iniciadas en tres.
d. Una vez obtenida la sumatoria total, invierta el mismo y determine si es par o impar.
2. El dueño de una empresa desea planificar las decisiones financieras que tomara en el siguiente año. La
manera de planificarlas depende de lo siguiente:
Si actualmente su capital se encuentra con saldo negativo, pedirá un préstamo bancario para que su nuevo
saldo sea de Bs. 10.000. Si su capital tiene actualmente un saldo positivo pedirá un préstamo bancario para
tener un nuevo saldo de Bs. 20.000, pero si su capital tiene actualmente un saldo superior a los Bs. 20.000
no pedirá ningún préstamo.
Posteriormente repartirá su presupuesto de la siguiente manera:
· Bs. 5.000 para equipo de cómputo.
· Bs. 2.000 para mobiliario.
y el resto la mitad será para la compra de insumos y la otra para otorgar incentivos al personal.
Desplegar que cantidades se destinaran para la compra de insumos e incentivos al personal y, en caso de
que fuera necesario, a cuanto ascendería la cantidad que se pediría al banco.
3. Desarrolle un programa que calcule e imprima el pago de 43 trabajadores que laboran en la Compañía
GACMAN. Los datos que se leerán serán los siguientes:
· Las horas trabajadas.
· El sueldo por hora.
· El tipo de trabajador (obrero o empleado).
Para calcular los pagos considerar lo siguiente:
· Los obreros pagan 10 % de impuesto
· Los empleados pagan 10 % de impuesto.
· Los trabajadores (obreros y empleados) que reciban un pago menor de Bs. 1.000 no pagan impuesto.
Al final se desea:
· Total a pagar a cada obrero y empleado.
· Total pagado a obreros y empleados.
· Total de impuesto pagado.
· Total de impuesto pagado por los obreros y por empleados.
· Cantidad de trabajadores que no pagan impuesto.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
voides_palindromo(char*a)
{
Bool b=TRUE;
intultPos=strlen(a)-1;
inti;
for(i=0;i<strlen(a);i++,ultPos--)
{
if(a[i]!=a[ultPos])
{
b=FALSE;
break;
}
}
if(b)ES_PALIN
elseNO_PALIN;
}
intmain()
{
char*a=(char*)calloc(20,sizeof(char));
printf("Palabra: ");scanf("%s",a);
es_palindromo(a);
free(a);a=NULL;
system("pause");
return0;
}
Osea, ingresar un entero (el orden de la matriz), y que el programa devuelva la matriz 'espiral' de dicho orden.
¿Alguna idea para generar dicha matriz?
Se desea diseñar un sistema de reconocimiento de imágenes para un satélite. El software asociado debe realizar distintos tipos de operaciones
con imágenes almacenadas en matrices de m x n elementos. Cada punto de la imagen está representado por un color codificado mediante un
entero en el rango 0-255.
Hacer un menú en el programa principal con las opciones que se han indicado y llamar a los procedimientos a partir de ese menú. Además este
menú se podrá ejecutar un número ilimitado de veces (hasta que el usuario introduzca 0).
Además deberemos implementar las siguientes funciones:
Inicializar matriz, dado un número de filas y columnas (habrá un Máximo de filas y columnas que será constante).
Mostrar matriz.
/* Ejercicio 104
Escribir un programa que solicite un año e indique si es bisiesto o no
Un año es bisiesto si es múltiplo de 4 excluyendo aquellos que son múltiplo de 100 y no de 400.
- Los años exactamente divisibles entre 4 son años bisiestos.
- Los años exactamente divisibles entre 100 no son años bisiestos.
- Los años exactamente divisibles entre 400 sí son años bisiestos.
*/
Realizar un programa en pascal ISO-10.206 que realice una estadística, una eliminación de palabras repetidas, un cifrado y descifrado de un
texto leído desde el fichero texto.txt
Estadística. Por cada línea del texto almacenar en el fichero llamado informacion un registro cuyos campos indiquen:
Primera palabra en la línea.
Número absoluto de línea.
Número de página donde está la línea.
Número de palabras en la línea.
Última palabra en la línea.
Eliminación de palabras repetidas. Guardar en el fichero sinrepetidas.txt el texto original
sin palabras repetidas, dejando la primera ocurrencia.
Cifrado. Leer el fichero sinrepetidas.txt. Cifrarlo mediante el método de sustitución simple
(utilizar como alfabeto del criptosistema el código ASCII). El resultado almacenarlo en un
fichero de texto llamado cifrado.txt
Descifrado. Leer cifrado.txt y almacenar el código una vez descifrado en un fichero llamado descifrado.txt
Dadas tres cadenas de caracteres, dos sumandos y la tercera que representa el resultado de dicha suma, hacer un programa que reciba estas
tres cadenas y encuentre los valores para cada una de las letras de las cadenas para que la suma sea correcta. Es importante anotar que las
letras solamente pueden tomar valores entre 0 y 9 y que no puede haber dos letras con el mismo valor. Tambien es necesario tener en cuenta
que existe la posibilidad de que al sumar dos digitos, estos generen un acarreo. Por lo tanto a cada par de letras sumadas (menos al primer par)
debe sumarseles 0 o 1 dependiendo de si existe o no acarreo.
Ejemplo:
C4 C3 C2 C1
S E N D
M O R E
____________
M O N E Y
El programa debe mostrar como resultado, los valores para cada letra, de tal manera que los resultados de la suma sean correctos. Para el
ejemplo los resultados serian:
C1=1, C2=1, C3=0, C4=1, M=1, S=9, O=0, E=5, N=6, R=8, D=7, Y=2
3.algoritmo que lea un numero entero positivo y determine el numero de digitos decimales necesarios para la representacion de dicho valor.
*Escribir un programa que permita agregar nº enteros a una lista de números aceptada por teclado. El programa pregunta si debe agregar al
principio, al final o en el medio y agrega el elemento a la lista.*/
Citar
Acceso a ficheros
Ejercicio 122
Escribir un programa que solicite palabras y las agrege a un fichero llamado c:\diccionario de forma que luego se puedan consultar las palabras
una a una
Vale, lo q yo he hecho es un programa que pide al usuario la longitud mínima y maxima de la contraseña y crea todas las palabras posibles.
Ejemplo:
min=1, max=2 pues crea un archivo en el que guarda en cada linea todas las palabras posibles desde la cadena a hasta la zz de la forma:
Citar
a
b
c
...
ab
ac
ad
...
y así hasta zz
para n
1)paso
1
1
...
1 ->n-esima posicion
2)paso
1 2->obs arrancas por aca
2 1
2 ...
2 1 ->n-esima posicion
3)
°->arrancas de aca
1 3 2 ->obs arrancas por aca
2 1 3
3 2 ...
3 ...
3 2 1 ->n-esima posicion
pa ponerle limites "n" debe ser mayor de 1 (obvio) y menor de 21 para que no salga tan grusea la matriz
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
void main()
{
clrscr();
int c,x,y;
int a,a1,a2,a3;
int b[20][20]={0};
char respuesta[20];
char s='A';
while (s!='s' && s!='S')
{
textcolor(LIGHTGRAY);
gotoxy(2,2);cprintf("Introduzca un n£mero para crear el cuadrado latino");
gotoxy(2,3);cprintf("N£mero (2-19):");
fflush(stdin);
scanf("%[^\n]",respuesta);
a=atoi(respuesta);
a1=strlen(respuesta);
a2=0;
for (x=0;x<a1;x++)
{
for (y=48;y<=57;y++)
{
if (respuesta
==char(y))
a2++;
}
}
while ((a2!=a1) || (a>19 || a<=1) || respuesta[0]=='0')
{
gotoxy(2,5);cprintf("EL DATO INTRODUCIDO ES INCORRECTO");
gotoxy(2,6);cprintf("EL DATO TIENE QUE SER UN NéMERO NATURAL MAYOR QUE 1 Y MENOR QUE 20");
gotoxy(2,7);cprintf("PRESIONE ENTER");
getch();
clrscr();
textcolor(LIGHTGRAY);
gotoxy(2,2);cprintf("Introduzca un n£mero para crear el cuadrado latino");
gotoxy(2,3);cprintf("N£mero (2-19):");
fflush(stdin);
scanf("%[^\n]",respuesta);
a=atoi(respuesta);
a1=strlen(respuesta);
a2=0;
for (x=0;x<a1;x++)
{
for (y=48;y<=57;y++)
{
if (respuesta
==char(y))
a2++;
}
}
}
int z=2;
for(x=0;x<a;x++)
{
z--;
for(y=0;y<a;y++)
{
if (z>a)
z=1;
b
[y]=z;
z++;
}
}
c=a*4/2;
int d=a/2;
clrscr();
textcolor(GREEN);
gotoxy(24,10-d);
cprintf(" CUADRADO LATINO DE ORDEN \"n\"");
gotoxy(24,11-d);
cprintf(" n = %d ",a);
for(x=0;x<a;x++)
{
textcolor(LIGHTRED);
if (x==0)
{
gotoxy(40-c,12-d+x);
cprintf("Ú");
}
if (x==a-1)
{
gotoxy(40-c,14-d+x);
cprintf("À");
}
gotoxy(40-c,13-d+x);
cprintf("³");
for( y=0;y<a;y++)
{
textcolor(LIGHTBLUE);
cprintf("%3d ",b
[y]);
}
textcolor(LIGHTRED);
cprintf(" ³");
if (x==0)
{
gotoxy(40+c,12-d+x);
cprintf(" ¿");
}
if (x==a-1)
{
gotoxy(40+c,14-d+x);
cprintf(" Ù");
}
}
textcolor(YELLOW);
gotoxy(3,24);
cprintf("CONTINUAR = ENTER SALIDA = S");
s=getch();
textcolor(LIGHTGRAY);
clrscr();
}
}
1.Multiplicamos por dos los numeros de las posiciones imapres(4-3-4-1-0-9-7-5) y dejarlos con un solo digito.
4*2=8
3*2=6
4*2=81*2=2
0*2=0
9*2=18-->1+8=9
7*2=14--->1+4=5
5*2=10--->1+0=1
Vectores e Funções e Procedimentos
1. Uma empresa de viagens possui vários autocarros que efectuam percursos de longa distância. Cada autocarro pode transportar até 50
passageiros, os quais apenas podem entrar no ponto de partida do autocarro mas podem ter vários destinos (1,2,3,4), pois são efectuadas
várias paragens até ser atingido o destino final (4).
Pretende-se um programa que auxilie a empresa a determinar a receita proporcionada pelos bilhetes dos passageiros transportados por um
dado autocarro, bem como a percentagem de passageiros que vão desde a origem até ao destino final (4).
Para a resolução do problema considere a seguinte estrutura de dados:
var autocarro:array[1..50] of integer;
onde são armazenados os destinos de cada um dos passageiros.
a) Elabore uma procedimento que obtenha o numero de passageiros transportados por um dado autocarro e que efectue a leitura do destino
(1, 2 ,3 ou 4) de cada um dos passageiros;
b) Elabore uma função que obtenha o destino de um passageiro e que calcule o preço do bilhete que ele deve pagar, de acordo com a
seguinte tabela:
Destino Preço
1 2,55 €
2 3,50 €
3 4,50 €
4 5,00 €
c) Um procedimento que mostra o número de passageiros transportados e a informação referente aos seus destinos.
d) Elabore uma função que calcule e devolva a percentagem de passageiros que vai até ao destino final.
e) Utilizando as funções e os procedimentos elaborados nas alíneas anteriores, elabore um programa que obtenha o número de passageiros que
o autocarro vai transportar, calcule a receita total e a percentagem de passageiros que vão até ao destino final.
Deverá ser também indicado no monitor os lugares ocupados pelos passageiros que vão sair no primeiro destino (1).
algoritmo que al ingresar un numero por pantalla,al numero ya ingresado le suma su numero invertido,y este resultado tiene q ser
palindrome(que se pueda leer de igual forma de izquieda a derecha . eje:
1234=4321 , si el resultado es palindrome imprimir por pantalla 1paso, siino ver en cuantos pasos es posible llegar a un numero
palindrome
,esto realizarlo en cualquier base, dde la 10 hasta la base 2.
#include<stdio.h>
#include<math.h>
int funinv(int);
int funsuma(int);
int funacum(int);
int basex;
int funcionbasex(int,int);
int funbase(int,int);
main()
do{
printf("ingrese un numero:");
scanf("%d",&n);
}while(n<0);
num=n;
for(basex=9;basex>=2;basex--)
{
band=1;
while(num!=0)
{
v=num%10;
num=num/10;
if(v>=basex)
{
printf("base %d: ? pasos",basex);
band=0;
}
}
/*printf("band:%d",band);*/ /*hasta aqui compila bien*/
while(band==1)
{
pasos=0;
do{
n=funacum(n);
printf("funacumda:%d",n);
boolean=funsuma(n);
pasos=pasos+1;
}while(boolean==0);
}
}
}
/*------------------------------------------------------------------------*/
int inv,num1,r;
num1=n;
if(n>=10)
inv=0;
while(n!=0)
r=n%10;
n=n/10;
inv=(r+(inv*10));
if((num1>=0)&&(num1<10))
inv=num1;
}
return(inv);
/*---------------------------------------------------------------------------*/
if(suma==funinv(suma))
flag=1;
else
if(suma!=funinv(suma))
flag=0;
return(flag);
/*-------------------------------------------------------------------*/
int funacum(int n)
int adicion,a,sumabase;
a=funinv(n);
sumabase=(funbase(n,basex)+funbase(a,basex));
adicion=funcionbasex(sumabase,basex);
return(adicion);
}
/*------------------------------------------------------------------------*/
/*FUNCION PARA PASAR DE BASE 10 A BASE X*/
int funcionbasex(int n,int basex)
{
int inv,num1,h;
num1=n;
if(n>=10)
{
inv=0;
while(n!=0)
{
h=n%basex;
n=n/basex;
inv=h+inv*10;
}
}
if((num1>=0)&&(num1<10))
{
inv=num1;
}
inv=funinv(inv);
return(inv);
}
/*------------------------------------------------------------------------------*/
/*FUNCION PARA PASAR DE BASE x A BASE 10*/
while(q!=0)
{
T[cont]=q%10;
q=q/10;
cont=cont+1;
}
sum=0;
for(i=0;i<=cont-1;i++)
{
a=pow(base1,i);
sum=(sum+(T*a));
}
return(sum);
}
http://foro.elhacker.net/ejercicios/ejercicio_de_c-t40275.0.html#ixzz1Q6HNvaeH