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
19:15

Exercicio 02 (17-05-2011)

//Exercicio para mostrar as letras de um nome digitado letra por letra, uma em casa linha
#include <stdio.h>
main(){
char nome[15];
int a,b;
printf ("Digite seu nome: ");
gets (nome);
a=strlen(nome);
for (b=0;b<a;b++)
{
    printf ("%c\n", nome[b]);
}
}

1 comentários
19:15

Exercicio 01 (17-05-2011)

//Exercicio para mostrar a soma de todos os numeros de 0 ate X
#include <stdio.h>
main(){
int a,b=0,c,d;
printf ("Digite o numero final: ");
scanf ("%d",&a);
for (c=0;c<=a;c++){
    b=b+c;
}
    printf ("O resultado eh %d", b);
}

0 comentários
20:03

A história da Internet (by Tecmundo)


A história da Internet: pré-década de 60 até anos 80 [infográfico]

Foram anos de avanços até a rede mundial de computadores tornar-se o que é hoje. Conheça o início dessa evolução.
Atenção: para ver as imagens em seu tamanho real, clique com o botão direito e salve-as em seu computador, ou abra em uma nova guia do navegador.
Infográfico - A história da Internet: pré-década de 60 até anos 80 [infográfico]

    Quanto tempo você consegue ficar sem internet? Para quem está acostumado a acessá-la diariamente, é difícil imaginar um longo período de tempo sem bate-papos, sites de notícias ou jogos em rede. Mas pare para refletir por um instante: desde a invenção dos computadores, passaram-se décadas sem esses recursos tão simples e essenciais dos quais desfrutamos atualmente.
    Essa complexa rede foi evoluindo a partir de diferentes necessidades, como a comunicação instantânea e até o medo da guerra. Foram avanços inicialmente simples e isolados, que foram combinados para melhorar a qualidade e quantidade de dados transmitidos até chegar ao eficiente sistema de conexões que utilizamos hoje.
    O Tecmundo preparou um especial sobre o início da trajetória da rede mundial de computadores, agrupando os principais fatos e invenções da criação de nossa querida internet.

    Pré-1960

    Por séculos, a troca de informações acontecia de pessoa a pessoa ou por documentos em papel. Um grande aliado nessa comunicação foi a criação do telégrafo, um sistema de transmissão de mensagens através de dois pontos graças a ondas de rádio ou fios elétricos...
    Clique em "Read More" para continuar.
    0 comentários
    19:52

    Se a raiz de um número é perfeita

    #include <stdio.h>
    main (){
    int a,b,c;
    float d;
    printf ("Digite um numero inteiro: ");
    scanf ("%d", &a);
    d=sqrt(a);
    b=d;
    d=d-b;
      if (d==0){
            printf ("Eh um quadrado perfeito e a raiz eh %d",b);
            }else{
            printf ("Nao eh um quadrado perfeito");
            }
    }

    0 comentários
    19:51

    Arredondando um número

    #include <stdio.h>
    main (){
    int a,b,c;
    char simb;
    printf ("Digite um numero com virgula: ");
    scanf ("%d %c %d",&a,&simb,&c);
        if (c<5){
            a=a;
            }else{
                if (c>=5){
                a=a+1;
                }
            }
    printf ("O numero arredondado eh: %d", a);
    }

    0 comentários
    19:50

    Contagem entre dois horários (Com Horas, Minutos e Segundos)

    #include <stdio.h>
    main (){
    int h1,m1,s1,h2,m2,s2,ht,mt,st,a,b,c;
    puts("Digite o isntante inicial (horas,minutos e segundos)");
    scanf("%d %d %d", &h1, &m1, &s1);
    puts("Digite o isntante final (horas,minutos e segundos)");
    scanf("%d %d %d", &h2, &m2, &s2);
    ht=h2-h1;
    mt=m2-m1;
    st=s2-s1;
        if ((ht<0) || (ht==0 && mt<0)){
            puts("Dados invalidos, o momento final eh anterior ao primeiro");
            }else{
                if (mt>=0 && st>=0 && st<=59){
                    ht=ht;
                    mt=mt;
                    st=st;
                    }else{
                        if (mt>=0 && st<0){
                            ht=ht;
                            mt=mt-1;
                            st=st+60;
                            }else{
                                if (mt<0 && st>=0){
                                    ht=ht-1;
                                    mt=mt+60;
                                    st=st;
                                    }else{
                                        if (mt<0 && st<0){
                                            ht=ht-1;
                                            mt=mt+59;
                                            st=st+60;
                                        }
                                    }
                            }
                    }
            }
    printf ("\nEntre os instantes %dh %dmin %dseg e %dh %dmin %dseg passaram-se %dh %dmin %dseg", h1, m1, s1,
    h2,m2,s2,ht,mt,st);
    }

    0 comentários
    19:49

    Contagem de Caracteres

    #include <stdio.h>
    int main()
    {
        char nome[60];
        int T;
        printf("Digite o nome desejado: ");
        gets(nome);
        T=strlen(nome);
        printf("O total de caracteres eh: %d", T);
    }

    0 comentários
    19:48

    Classificação dos Triângulos em Isoceles, Equilatero e Escaleno



    #include <stdio.h>
    int main (){
    float a,b,c,d,e;
    printf ("Digite o valor do lado A: ");
    scanf ("%f", &a);
    printf ("Digite o valor do lado B: ");
    scanf ("%f", &b);
    printf ("Digite o valor do lado C: ");
    scanf ("%f", &c);
    if(a+b<c || a+c<b || b+c<a){
        printf ("Nao eh triangulo");
        }else{
            if(a==b && a==c){
                printf ("O triangulo eh EQUILATERO.");
                }else{
                    if(a==b || a==c || b==c){
                        printf ("O triangulo eh ISOCELES.");
                        }else{
                            printf ("O triangulo ESCALENO.");
                        }
                }
        }
    }

    0 comentários
    19:45

    Celsius para fahrenheit

    #include
    int main (){
    float A, B, C;
        printf ("digite a temperatura em Celsius: ");
        scanf ("%f", &A);
        B=A*1.8+32;
        printf ("a temperatura em Fahrenheitt eh: %.2f", B);
    }

    0 comentários
    19:39

    Transformando segundos em horas, minutos e segundos

    #include
    int main (){
    int segundos, h, m, st, A, B, C;
    printf ("insira o numero de segundos: ");
    scanf ("%d", &segundos);
    printf ("***Calculando***\n\n");
    h=segundos/3600;
    A=segundos%3600;
    m=A/60;
    st=A%60;
    printf ("o hora eh: %d:%d:%d", h, m, st);
    }
    0 comentários
    19:38

    Calculo de Nota e tipo de aprovação

    #include
    int main (){
    float a;
    printf ("Digite a nota final do aluno: ");
    scanf ("%f", &a);
        if (a<0){
            printf ("Nota invalida.");
            }else{
                if (a>=0 && a<6){
                printf ("Reprovado");
                }else{
                    if (a>=6 && a<8){
                    printf ("Aprovado simplesmente");
                    }else{
                        if (a>=8 && a<9.5){
                        printf ("Aprovado com Merito");
                        }else{
                            if (a>=9.5){
                            printf ("Aprovado com Distinçao");
                            }
                        }
                    }
                }
            }
    }
    0 comentários
    19:33

    Calculo para divisão inteira e divisão real

    #include
    int main (){
    int x, y, q, resto;
    float rr, a, b;
    printf ("digite o dividendo: ");
    scanf ("%d", &x);
    printf ("digite o divisor: ");
    scanf ("%d", &y);
    q=x/y;
    printf ("o resultado da divisao inteira eh: %d\n\n", q);
    resto=x%y;
    printf ("o restante da divisao inteira eh: %d\n\n", resto);
    a=x;
    b=y;
    rr=a/b;
    printf ("o resultado da divisao real eh: %.1f\n\n", rr);
    }
    0 comentários