Desarrollar y probar los problemas descritos a continuación en C, PERL y Python:
1. Generar 1000 números aleatorios y calcular el promedio.
2. Calcular los puntos de una circunferencia con centro en el origen (el radio debe ser mayor a 10).
3. Solicitar la fecha de nacimiento y calcular la edad en segundos.
4. Solicitar un texto por entrada estándar y contar el número de letras que tiene.
5. Dada una fecha y hora, contar las horas desde el inicio del año hasta la fecha y hora dada.
6. Calcular la suma de los valores ASCII de “A” a “Z”, más “a” a “z” y más “0” a “9”.
7. Verificar si un RUT es correcto.
Desarrollo:
En c:
1)
#include<stdio.h>
#include<conio.h>
#include<dos.h>
#include<string.h>
#include<stdlib.h>
#include <time.h>
#include<math.h>
int main(){
int i;
int n=0;
int a[1000];
for(i=0;i<1000;i++){
srand((unsigned)time(NULL));
a[i]=rand()%1000;
}
for(i=0;i<1000;i++){
n=n+a[i];
}
printf("el promedio de los 1000 numeros generados es = %d",(n/1000));
getchar();
}
2)
#include <windows.h>
#include<stdio.h>
#include<conio.h>
#include<dos.h>
#include<string.h>
#include<stdlib.h>
#include <time.h>
#include<math.h>
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
int main(void){
int i=0;
int r=0;
float x=0,y=0;
int c=0;
int N=30;
//c=x^2+y^=r^2
//x e y son puntos
//r es el radio que tiene que ser mayor que 10
//sabiendo que tenemos el centro(0,0) y que el radio es mayor que 10
//Radio
while(i<2){
srand((unsigned)time(NULL));
r=rand()%100;
i++;
if(r<10){
i--;
}}
//puntos x e y
while(i<10){
x=r*(sin(i*2*M_PI/N));
y=r*(cos(i*2*M_PI/N));
printf("%f|%f",x,y);
i++;
}
}
3)
int main(void){
char texto[200];
fflush(stdin);
printf("\tIngrese un Texto: ");
gets(texto); //obtiene y guarda el texto
int largo = strlen(texto); // guarda el largo del texto
int i;
int contador = 0;
char l;
for (i = 0; i < largo; i++) {
contador++;
l = texto[i];
if (l == ' ')
{
contador--;
}
}
printf(" =%d", contador);
}
4)
#import <stdio.h>
#import <time.h>
time_t pideFechaNacimiento(){
int dia, mes, ano;
struct tm aux;
time_t fec_nac;
printf("[?] Introduzca su fecha de nacimiento:\n");
printf("\tdd:\t");
scanf("%i", &dia);
printf("\tmm:\t");
scanf("%i", &mes);
printf("\tyyyy:\t");
scanf("%i", &ano);
if ( ( dia < 1 ) || (dia > 31) || (mes < 1) || ( mes > 12) || ( ano < 1000) ){
printf("[x] Error, fecha no valida");
return 0;
}
aux.tm_mday = 17;
aux.tm_mon = 7 - 1;
aux.tm_year = 1988 - 1900;
aux.tm_sec = 0;
aux.tm_min = 0;
aux.tm_hour = 0;
aux.tm_isdst = 0;
fec_nac = mktime(&aux);
return fec_nac;
}
int segundosDesde(time_t fecha){
time_t now;
time(&now);
return now - fecha;
}
int main(int argc, char* args[]){
printf("[!] Has vivido %i segundos\n", segundosDesde( pideFechaNacimiento() ) );
return 0;
getchar();
}
5)
#include <stdio.h>
int main(int argc, char* argv[]){
int suma = 0;
char i;
for(i = 'a' ; i <= 'z' ; i++){
suma += i;
}
for(i = 'A' ; i <= 'Z' ; i++){
suma += i;
}
for(i = '0' ; i <= '9' ; i++){
suma += i;
}
printf("La suma es %i\n", suma);
}
6)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char digitoVerificador(int rut)
{
int Digito;
int Contador;
int Multiplo;
int Acumulador;
char RutDigito;
Contador = 2;
Acumulador = 0;
while (rut != 0)
{
Multiplo = (rut % 10) * Contador;
Acumulador = Acumulador + Multiplo;
rut = rut / 10;
Contador = Contador + 1;
if (Contador == 8)
{
Contador = 2;
}
}
Digito = 11 - (Acumulador % 11);
if (Digito == 10)
{
RutDigito = 'K';
}
else if (Digito == 11)
{
RutDigito = '0';
}
else
{
RutDigito = (char)(((int)'0')+Digito);
}
return (RutDigito);
}
int main()
{
char sRut[10];
char sRutAux[10];
char cDigito = '\0';
char cDigitoValido = '\0';
int iRut = 0;
char *token = NULL;
printf("Ingrese el rut que ejecutar: ");
gets(sRut);
strncpy(sRutAux,sRut,10 - 1);
token = strtok(sRutAux, "-");
iRut = atoi(token);
cDigito = sRut[strlen(sRut) - 1];
printf("DATOS INGRESADOS: \n");
printf("Rut: %d\n", iRut);
printf("Digito: %c\n\n", cDigito);
cDigitoValido = digitoVerificador(iRut);
if(cDigito == cDigitoValido)
{
printf("-- DIGITO CORRECTO --");
}
else
{
printf("-- DIGITO INCORRECTO --");
}
getchar();
}
No hay comentarios:
Publicar un comentario