Sobre o blog

O blog TI Cimol tem como objetivo divulgar informações do curso técnico em TI para o turno da noite, com exercícios resolvidos, algumas curiosidades tecnológicas e dicas sobre o mercado da informática.

07:10

Trabalho 24-05-2011 (Preenchedor de cheques)





//O usuario digita um valor numerico e o programa mostra escrito por extenso
#include<stdio.h>
int main(){
int valor,unid,deze,cent,milh,aux1,aux2,aux3,aux4,escolha;
char *unidade[100],*dezena[100],*centena[100],*sinal[10];


unidade[0]="zero";
unidade[1]="um";
unidade[2]="dois";
unidade[3]="tres";
unidade[4]="quatro";
unidade[5]="cinco";
unidade[6]="seis";
unidade[7]="sete";
unidade[8]="oito";
unidade[9]="nove";
unidade[10]="dez";
unidade[11]="onze";
unidade[12]="doze";
unidade[13]="treze";
unidade[14]="quatorze";
unidade[15]="quinze";
unidade[16]="dezesseis";
unidade[17]="dezessete";
unidade[18]="dezoito";
unidade[19]="dezenove";
dezena[2]="vinte";
dezena[3]="trinta";
dezena[4]="quarenta";
dezena[5]="cinquenta";
dezena[6]="sessenta";
dezena[7]="setenta";
dezena[8]="oitenta";
dezena[9]="noventa";
centena[0]="cem";
centena[1]="cento";
centena[2]="duzentos";
centena[3]="trezentos";
centena[4]="quatrocentos";
centena[5]="quinhentos";
centena[6]="seissentos";
centena[7]="setecentos";
centena[8]="oitocentos";
centena[9]="novecentos";






do{
printf ("Digite um valor entre 1 e 9999: ");
scanf ("%d",&valor);
    while (valor>9999 || valor<1){
        printf ("\nValor invalido, digite um valor entre 1 e 9999:\n");
        scanf ("%d",&valor);
    }
milh=valor/1000;
aux1=milh*1000;
cent=(valor-aux1)/100;
aux2=cent*100;
deze=(valor-aux1-aux2)/10;
aux3=deze*10;
unid=(valor-aux1-aux2-aux3);
aux4=aux3+unid;
sinal[2]="";


if (cent>0){
    sinal[2]=" e ";
}


if (cent>0 &&(deze>0 || unid>0)){
    sinal[0]=", ";
}else{
    if (milh>0 && cent==0 && deze==0 && unid==0){
        sinal[0]="";
    }else{
    sinal[0]=" e ";
    }
}




if (milh==0 && cent==1 && deze==0 && unid==0){
    printf("cem reais");
}else{
    if (milh>0 && cent==1 && deze==0 && unid==0){
        printf("%s mil e cem reais", unidade[milh]);
    }else{
        if (milh==0 && cent==0 && deze==0 && unid==1){
            printf("um real");
    }else{
        if (milh>0){
            printf ("%s mil%s", unidade[milh],sinal[0]);
        }


        if (cent>0){
            printf ("%s",centena[cent]);
        }


        if (aux4<20 && aux4>0){
            printf ("%s%s",sinal[2],unidade[aux4]);
        }


        if (aux4>19 && unid!=0){
            printf ("%s%s e %s",sinal[2],dezena[deze],unidade[unid]);
        }


        if (aux4>19 && unid==0){
            printf ("%s%s",sinal[2],dezena[deze]);




        }


        printf (" reais");
    }
    }




}








    printf ("\nDeseja repetir:\n");
    printf ("Sim (1)\n");
    printf ("Nao (2)\n");
    scanf("%d",&escolha);
        while (escolha>2 || escolha<1){
            printf ("Erro, digite novamente:\n");
            scanf ("%d",&escolha);
        }
}while (escolha==1);
}






0 comentários
20:53

Exercícios de Algoritimos (Primeiras aulas)


Exercício 01

Três índios, conduzindo três brancos, precisam atravessar um rio dispondo para tal de um barco cuja capacidade é de apenas duas pessoas. Por questões de segurança, os índios não querem ficar em minoria, em  nenhum momento e em nenhuma das margens. Escreva um algoritmo que oriente os índios para realizarem a  travessia nas condições fixadas. (Cabe observar que, usualmente, este exercício é enunciado envolvendo três  jesuítas e três canibais. A alteração feita é uma modesta contribuição para o resgate da verdadeira história  dos índios).
Resposta: 
1-Atravesse com dois brancos
2-Volte com um branco
3-Atravesse com dois brancos
4-Volte com um branco
5-Atravesse com dois indios
6-Volte com um branco e um indio
7-Atravesse com dois indios
8-Volte com um branco
9-Atravesse com dois brancos
10-Volte com um branco
11-Atravesse com dois brancos

Exercício 2
O jogo conhecido como Torre de Hanói consiste de três torres chamadas origem, destino e auxiliar e um conjunto de n discos de diâmetros diferentes, colocados na torre origem na ordem decrescente dos seus  diâmetros. O objetivo do jogo é, movendo um único disco de cada vez e não podendo colocar um disco sobre  outro de diâmetro menor, transportar todos os discos para torre destino, podendo usar a torre auxiliar como  passagem intermediária dos discos. Escreva algoritmos para este jogo nos casos n = 2 e n = 3.
Resposta:

Para 2 Discos
1-Mova o disco 1 de origem para auxiliar
2-Mova o disco 2 de origem para destino
3-Mova o disco 1 de auxiliar para destino

Para 3 Discos
1-Mova o disco 1 de origem para auxiliar
2-Mova o disco 2 de origem para auxiliar
3-Mova o disco 3 de origem para destino
4-Mova o disco 2 de auxiliar para destino
5-Mova o disco 1 de auxiliar para destino

Exercício 3
Imagine que se disponha de três esferas numeradas 1, 2 e 3 iguais na forma, duas delas com pesos iguais e diferentes do peso da outra. Escreva um algoritmo que, com duas pesagens numa balança de dois  pratos, determine a esfera de peso diferente e a relação entre seu peso e o peso das esferas de pesos iguais.
Resposta:
1- Pese as esferas A e B
2- Se (A,B) tiverem peso igual, pese as esferas A e C, caso contrário pule para o passo 3
     2.1- Se A>C, diga que C é mais leve que A e B
     2.2- Se A<C, diga que C é mais pesada que A e B
3- Pese as esferas A e C
4- Se (A,C) tem peso igual, pese as esferas A e B, caso contrario pule para o passo 5
     4.1- Se A>B, diga que B é mais leve que A e C
     4.2- Se A<B, diga que B é mais pesado que A e C
5- Pese as esferas B e C
6- Se (B,C) tem peso igual, pese as esferas B e A
     6.1- Se B>A, diga que A é mais leve que B e C
     6.2- Se B<A, diga que A é mais pesada que B e C

Exercício 4
A média geométrica de n números positivos é a raiz n-ésima do produto destes números. Supondo que o processador é capaz de calcular raízes n-ésimas, escreva um algoritmo para determinar a média geométrica de n números dados. 
Resposta:
1- Chame de A o primeiro numero dado
2-Chame de N o numero de elementos existentes na equação
3- Repita N-1 vezes as regras 3.1 e 3.2
     3.1- Chame de Z o próximo numero da equação
     3.2- Substitua o valor de A por A*Z
4- Calcule a raiz n-ésima de A, para o resultado, dê o nome de R
5- Mostre o resultado R como média

Exercício 6

O show de uma banda de rock, que será realizado na margem de um rio, deve começar exatamente às 21 h. Atrasados, às 20 h 43 min, os quatro integrantes da banda estão na outra margem do rio e necessitam, para chegar ao palco, atravessar uma ponte. Há somente uma lanterna e só podem passar uma ou  duas pessoas juntas pela ponte, e sempre com a lanterna. Cada integrante possui um tempo diferente para  atravessar a ponte: o vocal leva 10 minutos, o guitarrista 5 minutos, o baixista 2 minutos e o baterista 1  minuto. Evidentemente, quando dois atravessam juntos, o tempo necessário é o do mais lento. Escreva um  algoritmo que permita que a banda atravesse a ponte de modo que o show comece na hora marcada.
Resposta:
1- Atravesse o baixista e o baterista
2-Volte com o baterista
3-Atravesse com o guitarrista e o vocalista
4-Volte  com o baixista
5-Atravesse com o baixista e o baterista

2 comentários
19:36

Exercicio 04 (17-05-2011)

/*Solicitar a idade de várias pessoas e imprimir:
Total de pessoas com menos de 21 anos. Total de pessoas com mais de 50 anos. O programa termina quando idade for =-99.*/
#include <stdio.h>
main (){
int idade=0,cont21=0,cont50=0,a=0,b=0,outros=0;
printf ("Digite -99 para encerrar a contagem\n");
do{
    printf ("Digite a idade: ");
    scanf ("%d", &idade);
    if(idade<=21 && idade>0){
        cont21++;
    }else{
        if(idade>=50){
            cont50++;
        }else{
            if (idade==-99){
                printf ("%d pessoas com ate 21 anos.\n",cont21);
                printf ("%d pessoas com mais de 50 anos.\n",cont50);
                printf ("%d outros.\n",outros);
            }else{
                outros++;
            }
        }
    }
}while(idade!=-99);
}

0 comentários
14:21

Exercicio 7 (17-05-2011)

//Ver se um numero eh primo ou nao
#include <stdio.h>
main (){
int a=0,b=2,c=0,d=0;
printf ("Digite um numero: ");
scanf ("%d", &a);
    while (b<a){
        if (a%b!=0){
            b++;d=1;
        }else{
            c=b;b=a;d=2;
        }
    }
    if (a==2){
        printf ("2 eh um numero primo(o unico par primo)");
    }else{
    if (d==1){
        printf ("Eh Primo");
    }else{
        printf ("%d eh um divisor de %d, portanto nao eh primo", c,a);
    }
}
}
0 comentários
14:13

Exercicio 6 (17-05-2011)

//Ver se uma palavra eh PALINDROME ou nao
#include <stdio.h>
main(){
char word[40];
int a=0,b=0,c=0,d=0;
printf ("Digite a palavra: ");
gets (word);
a=strlen(word);
a=a-1;
    for (c=a;c>=b;c--){
        if (word[c]==word[b]){
            b++;d=1;
        }else{
            b=a;
            d=2;
        }
    }
    if (d==1){
        printf ("Eh PALINDROME");
    }else{
        printf ("Nao eh PALINDROME");
    }
}

0 comentários
19:49

Exercicio 05 (17-05-2011)

//O usuario digita um nome e o programa imprime de tras para frente.
#include <stdio.h>
main(){
char nome [20];
int a,b,c;
printf ("Digite um nome: ");
gets (nome);
a=strlen(nome);
for (b=a;b>=0;b--)
{
    printf ("%c",nome[b]);
}
}

0 comentários
19:37

Exercicio 03 (17-05-2011)

//Programa que pede um numero entre 1 e 10. Caso o usuario digite outro numero, mostra invalido e pede um numero novamente.
#include <stdio.h>
main(){
int a,b,c;
printf ("\nDigite um numero entre 1 e 10: ");
scanf ("%d",&a);
while (a<1 || a>10)
{
    printf ("Numero Invalido.\n");
    printf ("\nDigite um numero entre 1 e 10: ");
    scanf ("%d",&a);
}
printf ("O numero eh: %d", a);
}

0 comentários