You are on page 1of 7

Problema 3.

10
Haga un diagrama de flujo que calcule el trmino nmero 180 de la
secuencia FIBONACCI. Recuerde que los dos primero nmeros de la serie
son 0 y 1. El resultado se calcula como la suma de los dos nmeros
inmediatos que le preceden.

#include "stdafx.h"
#include
#include
#include
#include
#include
#include
using namespace System;
using namespace std;

int opcion;
char continuar;
void clrscr()/*Creando funcion para limpiar pantalla.*/
{
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
COORD coord = {0, 0};
DWORD count;
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(hStdOut, &csbi);
FillConsoleOutputCharacter(hStdOut, ' ', csbi.dwSize.X * csbi.dwSize.Y,
coord, &count);
SetConsoleCursorPosition(hStdOut, coord);
}

void fibonacci()
{
int pri,seg,sig,i;

clrscr();
seg=1;

i=3;
while (i<=180)
{
sig=pri+seg;
pri=seg;
seg=sig;
i=i+1;
printf(" %d,",sig);
}
getch();
}

PROBLEMA 3.11
void candidatos()
{
clrscr();
int
can1/*Candidato1*/,can2/*Candidato2*/,can3/*Candidato3*/,can4/*Candidat
o4*/,voto/*Voto*/;
float por1/*porcentaje1*/,
por2/*porcentaje2*/,por3/*porcentaje3*/,por4/*porcentaje4*/;
float sumv/*Suma votantes*/;

while(voto !=0)
{
printf("Ingrese para quin es el voto: ");
scanf("%d",&voto);

switch(voto)
{
case 1: can1=can1+1; break;
case 2: can2=can2+1; break;
case 3: can3=can3+1; break;
case 4: can4=can4+1; break;
}

}
sumv=can1+can2+can3+can4;
if (can1!=0)
{por1=(can1/sumv)*100;}
else
{
if (can2!=0)
{por2=(can2/sumv)*100;}
else
{
if (can3!=0)
{por3=(can3/sumv)*100;}
else
{if (can4!=0)

{por4=(can4/sumv)*100;}}
}
}

system("cls");
printf("\n\n\nVoto Candidato1: %d Porcentaje: %5.2f",can1,por1);
Console::Write ("%");
printf("\nVoto Candidato2: %d Porcentaje: %5.2f",can2,por2); Console::Write
("%");
printf("\nVoto Candidato3: %d Porcentaje: %5.2f",can3,por3); Console::Write
("%");
printf("\nVoto Candidato4: %d Porcentaje: %5.2f",can4,por4); Console::Write
("%");
printf("\n\nCantidad de Votantes: %5.2f",sumv);
getch();

PROBLEMA 3.14 NUMERO PERFECTO


void perfectos()
{
int tecla;
do
{
clrscr();

printf("\n\nUn numero se dice que es perfecto si sus factores, incluyendo a


1\n(pero excluyendo el numero mismo), suman igual que el numero.\nPOR
EJEMPLO: 6 es un numero perfecto porque 6 = 1 + 2 + 3.\n\nEste
PROGRAMA determina e imprime todos los numeros perfectos entre 1 Y
1000.\nTambien imprime los factores de cada numero perfecto, para
confirmar que\nel numero de verdad es perfecto.\n\n\n");

printf("\n\n\nSOLUCION:");

int numero,contador,ciclo,residuo;

for(numero=1;numero<=1000;numero++){//Ciclo hasta 1000 porque el


ejercicio pide buscar los nmeros perfectos entre 1 y 1000.

contador=0;//La variable contador sirve para contar cuntos factores tiene


cada nmero del 1 al 1000, sin tomar en cuenta como factor el nmero
mismo que se est evaluando.

for(ciclo=1;ciclo
residuo=numero%ciclo;

if(residuo==0){

contador=contador+1;

LLAMADA
void llamada()
{
clrscr();
char tipo;
int duracion,cl,tecla;
float cuenta,costo;

cl=0;
cuenta=0;
printf("tipo de llamada: ");
scanf("%c",&tipo);
printf("duracion: ");
scanf("%d",&duracion);

while((tipo!='x')&&(duracion!= -1))
{
switch(tipo)
{
case 'i':
if (duracion>3)
{
costo=7.59+(duracion-3)*3.03;
}
else
{
costo=7.59;
}
break;
case 'n':
if(duracion>3)
{
costo=1.20+(duracion-3)*0.48;
}
else
{

costo=1.20;
}
break;
case 'l':
cl=cl+1;
if(cl>50)
{
costo=0.6;
}
else
{
costo=0;
}
break;
}
cuenta=cuenta+costo;
printf("ingrese el tipo de llamada que decea realizar:");
scanf("%s",&tipo);
printf("ingrese la duracion de la llamada:");
scanf("%d",&duracion);
}