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