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.

18:26

Desordenar numeros

#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>

int vetrandom(int *v,int t){
        int a,b,aux,i,ok=0;

        srand(time(NULL));

        for(i=0;i<200;i++){
            while(ok==0){
                //randomize();
                //srand(time(NULL));
                a=rand() % (t);
                //randomize();
                //srand(time(NULL));
                //printf("rand: %d\n", rand());
                //srand(time(NULL));
                b=rand() % (t);
                if(a==b){
                    ok=0;
                }else{
                    ok=1;
                }
                printf ("a: %d   b: %d\n", a, b);
            }

            printf ("ANTES - v[a]: %d   v[b]: %d\n", v[a], v[b]);
            aux=v[b];
            v[b]=v[a];
            v[a]=aux;
            printf ("DEPOIS - v[a]: %d   v[b]: %d\n", v[a], v[b]);
            ok = 0;
            }
}

int main(){

    int quant;
    printf("Digite a quantidade de termos: ");
    scanf("%d",&quant);

    int vetor[quant],a,b,c;
    printf("Digite os valores: ");
        for(a=0;a<quant;a++){
            printf("%d: ",a);
            scanf("%d",&vetor[a]);
        }

    vetrandom(vetor,quant);
    for(a=0;a<quant;a++){
        printf("%d",vetor[a]);
    }
}
0 comentários
16:18

Exercício 1 , 28 de junho de 2011

#include<stdio.h>

int somavetor(int *v,int z){
    int i,a=0,total=0;
        for(i=0;i<z;i++){
            total=total+v[i];
            printf("%d  ",v[i]);

        }
        return total;
}

int main(){
    int vet;
    /*Aqui a pessoa vai digitar quantas posições ela quer ter no vetor*/
    printf("Digite o numero de vetores desejados: ");
    scanf("%d",&vet);

    int a[vet],b,i;

    printf("Digite os numeros do vetor: ");
        for(i=0;i<vet;i++){
            scanf("\n%d",&a[i]);
        }
    printf("\n");
    b=somavetor(a,vet);
    printf("\n\nResultado: %d",b);
}
0 comentários
19:00

Sequencia Fibonacci




#include<stdio.h>
int main(){


int a,b=0,c=1,d=0,i;


printf("Digite o numero de termos: "); scanf("%d", &a);
printf("1 ");
for(i=1;i<a;i++){
    b=c+d;
    printf("%d ",b);
    d=c;
    c=b;
}
}
0 comentários
21:48

Pedido da Lanchonete





#include<stdio.h>
#include<stdlib.h>


int main(){


    system("color 0b");


    int codigo=0, quant=0, piz=0, pas=0, bol=0, ref=0, caf=0;
    float valor=0, total=0;


    printf("Codigo     Produto     Valor\n");
    printf("100         Pizza       2.00\n");
    printf("101         Pastel      1.50\n");
    printf("102         Bolo        2.00\n");
    printf("103         Refri       1.00\n");
    printf("104         Cafe        0.80\n");
    printf("105------------Fechar Pedido\n");


do{
    printf("\nDigite o codigo: ");
    scanf("%d",&codigo);
        while(codigo<100 || codigo>105){
            printf("\nErro, digite o codigo novamente: ");
            scanf("%d",&codigo);
        }


            if(codigo==100){ printf("***Pizza***");}
            if(codigo==101){ printf("***Pastel***");}
            if(codigo==102){ printf("***Bolo***");}
            if(codigo==103){ printf("***Refri***");}
            if(codigo==104){ printf("***Cafe***");}




if(codigo!=105){
    printf("\nDigite a quantidade: ");
    scanf("%d",&quant);
        while(quant<0){
            printf("\nErro, digite a quantidade novamente: ");
            scanf("%d",&quant);
        }
}




    if(codigo==100){ //PIZZA
        valor=valor+(2*quant);
        piz=piz+quant;
    }


    if(codigo==101){ //PASTEL
        valor=valor+(1.5*quant);
        pas=pas+quant;
    }


    if(codigo==102){ //BOLO
        valor=valor+(2*quant);
        bol=bol+quant;
    }


    if(codigo==103){ //REFRI
        valor=valor+(1*quant);
        ref=ref+quant;
    }


    if(codigo==104){ //CAFE
        valor=valor+(0.8*quant);
        caf=caf+quant;
    }


}while(codigo!=105);


printf("\n#================================#\n");
printf("|          %d Pizza(s)            |\n",piz);
printf("|          %d Pastel(is)          |\n",pas);
printf("|          %d Bolo(s)             |\n",bol);
printf("|          %d Refri(s)            |\n",ref);
printf("|          %d Cafe(s)             |\n",caf);
printf("#================================#\n\n");




printf("Total do pedido: R$%.2f\n\n",valor);
system("pause");
}

0 comentários
20:44

Contagem de números pares e ímpares






//O usuario digita um numero e o programa conta quantos numeros pares e impares tem.
#include<stdio.h>
#include<stdlib.h>


int main(){


    system("color 0e");


    int num, i, par=0, impar=0;
    char resp='s';


    do{
    printf ("Digite um numero: \n");
    scanf("%d", &num);


    for(i=0;i<=num;i++){
        if(i%2==0){
            par++;
        }else{
            impar++;
        }
    }


    printf("%d pares\n%d impares\n", par, impar);


    printf("Digite 's' para repetir ou outro para sair:\n");
    getchar();
    resp=getchar();
    }while(resp=='s');
}
0 comentários
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