terça-feira, 31 de maio de 2011

SORTEANDO NUMEROS RANDOMICAMENTE EM ARRAYS

ESSE PROGRAMA SORTEIA NÚMEROS RANDOMICAMENTE DE 0 A 50, E ARMAZENA EM UM ARRAY 1, PEGA TODOS ESSES NÚMEROS TESTA QUAIS SÃO ÍMPARES E OS GRAVAM EM UM SEGUNDO ARRAY, E MOSTRA OS ARRAYs NA TELA!!!!



#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <time.h>

int  main(int argc, char** argv){
int v1[100], v2[100]={0}; //arrays
int n=0, k=0;//variaveis
srand(time(NULL));//sorteia os números, NULL == 0, você pode usar, srand(time(0)) também
for(int i = 0; i <100; i++)//percorrendo o array
{
v1[i]=(rand() %50);//pra cada posicao  n do array( 0<=n<100) ele coloca um numero inteiro variando de 0 a 50
if(v1[i]%2 ==1){//testa quais sao o impares
v2[k]=v1[i];//caso for impar, armazena este numero no meu segundo array, na posicao k
k++;}//se armazenou tenho que mudar a posicao do array, incremento o k
printf("%d ", v1[i]);//imprimindo meu array 1 na tela...
n++;
if(n==10)// a cada 10 elementos na mesma linha ele salta um linha
{
printf("\n");
n=0;}//zera o n para contar mais 10 elementos na mesma linha
}
printf("\n\n\n\n");
printf("FORAM SORTEADOR %d NUMEROS IMPARES\n\n\n\n", k);
for(int i = 0; i <100; i++)//imprime o array 2 mostrando apenas numero impares
{
if(v2[i] !=0){//como iniciamos todas as posicoes do meu array com 0, nao quermos mostra-lo(0), entao a cada vez que for diferente de 0 ele mostra
printf("%d ", v2[i]);
n++;}
if(n==10)
{
printf("\n");
n=0;}
}

getch();//getch() funciona como o system("pause"), é a mesma ideia, apenas não aparece nada escrito na tela como " pressione um tecla para continuar" típico do system("pause")
return 0;
}

COMENTEM!!!!

terça-feira, 17 de maio de 2011

Comparando duas strings, se são iguais ou diferentes.

//
//
//
//Comparando duas strings, se são iguais ou diferentes.
//
//
//

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

void check(char *a, char *b, int (*cmp)(const char *, const char*));
int numcmp(const char *a, const char *b);
int main(int argc, char** argv) {

    char s1[80], s2[80];

    scanf("%s", &s1);
    scanf("%s", &s2);
  
    if(isalpha(*s1))
        check(s1, s2, strcmp);
    else
        check(s1, s2, numcmp);
}

void check(char *a, char *b, int (*cmp)(const char *, const char*)){

    printf("Testando igualdade...\n");

    if(!(*cmp)(a, b)) printf("Igual.\n");
    else
        printf("Diferente.\n");
}

int numcmp(const char *a, const char *b){

    if(atoi(a)==atoi(b)) return 0;
    else
        return 1;

    return (EXIT_SUCCESS);
}


//Se tiver alguma dúvida em cima do código-fonte, pergunte.

domingo, 15 de maio de 2011

QUADRADO DE UM NUMERO SOMANDO NÚMEROS ÍMPARES!!

Sabemos que para calcular uma potência basta multiplicar a base o n.º de vezes do expoente, ou seja, por exemplo: 42=4x4=16.
No entanto Pitágoras conseguiu arranjar outra regra para calcular potências, baseando-se na soma de números ímpares.
Exemplos:
o primeiro número ímpar é 1 então 12=1
os primeiros dois números ímpares são 1 e 3, então 22=1+3
os primeiros três números ímpares são 1, 3 e 5, então 32=1+3+5
os primeiros quatro números ímpares são 1, 3, 5 e 7, então 42=1+3+5+7 e assim sucessivamente
Se pretendêssemos calcular 92 teríamos que 92=1+3+5+7+9+11+13+15+17=81 isto é, 92 é igual à soma dos primeiros 9 números ímpares.




AGORA COMO FAZER ISSO E LINGUAGEM C????


RESOLVENDO . . . 






#include <stdio.h>
#include <conio.h>
#include <iostream>


using namespace std;


int quadrado (int n);


int main(){


int n, resp, op;
do{
cout << "Entre com o numero\n";
cin >>n;
resp = quadrado(n);
cout<< "O quadrado de  "<<n<<" e: "  << resp<<endl;
cout << "Digite -1 para sair!!\n";
cin >> op;
}while(op != -1);
return 1;
}


int quadrado (int n)
{
int i, k=0;
for(i=0; i < n; i++)
k += ((i *2) + 1);
return k;
}




caso queiram mostrar os numeros impares na tela basta fazer assim:



int quadrado (int n)
{
int i, k=0;
for(i=0; i < n; i++){
k += ((i *2) + 1);
  cout <<k<<" ";
}
getch();
return k;
}





COMENTEM!!!!!

ACHANDO A RAIZ DE UM NUMERO USANDO NÚMEROS ÍMPARES

#include <stdio.h>
#include <conio.h>
#include <iostream>

using namespace std;

int raiz(int n);

int main(){

    int n, resp;
    cout << "Entre com o numero\n";
    cin >> n;
    resp = raiz(n);
    if(resp == 0)
        cout << "A raiz de "<<n<<" nao é inteira";
    else
        cout<< "A raiz de "<<n<<" e: "  << resp<<endl;
    getch();
    return 1;
}

int raiz(int n){


     int condicao=0, r=0;
     int i;
     for(i = 1; condicao<n; i++){
        if(i%2 ==1){
           condicao+=i;
           r++;}
      }
      if(condicao !=n)
           return 0;
      else
         return r;
}


COMENTEM!!!

Procurando um letra na frase!!!!

//O PROGRAMA PEDE PARA O USUARIO INSERIR UMA FRASE OU PALAVRA E EM SEGUIDA O USUARIO ESCOLHE UMA LETRA E O PROGRAMA INFORMA QUANTAS VEZES E EM QUAIS POSICOES ESSA LETRA APARECEU, CASO EXISTA NA FRASE OU PALAVRA
#include <iostream>//bibliotecas
#include <stdio.h>
#include <conio.h>
using namespace std;

void main()//função principal
{
char frase[200], l;//string e a variavel do tipo caracter que o usuario ira armazenar
int posicao[199], x,a, num=1;//vetor para armazener as n posições que se encontrar as letras
while(num){//inicio do laço, para que o usuario possa executar o programa quantas vezes quiser
system("color 0E");
system("cls");//limpa a tela
a=0;
x=0;
cout << "\t Digite uma frase ou uma palavra:\n";
fflush(stdin);//limpa o buffer
gets_s(frase);//recebe a frase ou palavra que o usuario digitar
cout << "\n \tDigite uma letra que deseje preocurar na frase ou na palavra\n";
fflush(stdin);//limpa o buffer
cin >> l;//recebe a letra que o usuario quer achar na frase
for(int i = 0; frase[i] != '\0'; i++){//percorre a string
if(frase[i] == l){//caso a letra desejada exista entra nesse if
a=1;//se entrar no if o (a) passa a ter novo valor
posicao[x] = i;// caso exista varias letras em varias posiçoes, essas posiçoes da string e armazenada no vetor vet
x++;//percorre o vetor e armazena o numero de casas preenchidas no vetor
}
}
if(a == 0)//caso nao exista a letra desejada na palavra o valor de (a) ainda continuara com 0
cout << " \n\tA Frase ou palavra digitada nao possui essa letra\n";
else//caso o valor de a seje != 0
{
cout << " \nA letra [" << l<< "] se repetiu "<< x<< " vezes:\n\n";
for(int i = 0; i < x; i++)//percorre o vetor posicão
cout << "na posicao "<< posicao[i]+1<<endl;//mostra as posiçoes na tela
}
cout << " \nDigite 1 para continuar e inserir um novo texto ou uma nova palavra\n\n";
cin >> num;//recebe a vontade do usuario
if(num != 1)
break;
}//fim do laço while
}//fim da função main

VALEUU GALERA!!! COMENTEM!!!

sábado, 14 de maio de 2011

Jorge o Caçador de mitos!! linguagem c e c++

Caçadores de Mitos
Jorge é um apresentador de televisão que comanda a  versão brasileira do grande
sucesso “Caçadores de Mitos”, onde se estuda um mito para descobrir se é fato ou apenas um
boato.
No próximo episódio, Jorge deverá apresentar o mito que diz que ”os raios não caem
duas vezes no mesmo lugar”, referindo-se aos raios das tempestades de chuva.
Para isso, foi até a cidade de Eletrolândia, que é a cidade com maior ocorrência de raios
no mundo. O prefeito tem tanto orgulho desse título que mandou criar um sistema para registrar
os raios. Jorge conseguiu um relatório com as ocorrências de cada raio que caiu na cidade nos
últimos anos.
O mapa de Eletrolândia é um retângulo. Para o sistema de registro a cidade é subdividida
em quadrados de um metro de lado, denominados quadrantes. Assim, se a cidade tem 300
metros de largura e 1000 de comprimento, ela será subdividida em 300.000 quadrantes. O
sistema de registro armazena o quadrante em que o raio caiu.
Cada quadrante é identificado pelas suas coordenadas X e Y, conforme ilustra a figura
abaixo, que exemplifica um mapa de uma cidade com oito metros de comprimento por cinco
metros de largura (quarenta quadrantes). Além disso, cada quadrante deve conter a data que raio
caiu (dia, mês, ano), o valor da intensidade do raio e as condições do tempo (ensolarado,
chuvoso, nublado, etc).
Como os quadrantes são relativamente pequenos, Jorge decidiu que se dois raios caíram
no mesmo quadrante, pode-se considerar que caíram no mesmo lugar.
Tarefa
Sua missão é escrever um programa para ajudar o caçador de mitos a identificar se uma
determinada cidade atende ao mito ou não. Você deverá escrever um programa que:
 - leia a largura e altura de uma cidade
 - monte um vetor dinâmico que represente a largura x altura da cidade
Atenção: será usada uma estrutura unidimensional para representar uma estrutura
bidimensional
 - apresente um menu com as seguintes opções:
 - Marcar Raio: ler as coordenadas X e Y onde caiu um raio. Nesse caso ler também a
data do ocorrido, a intensidade do raio e as condições do tempo. Caso um raio caiu duas vezes no mesmo lugar, uma mensagem deverá ser impressa na tela e o programa
deverá ser encerrado.
- Pesquisar Raio: fornecer um dado ano e descobrir quantos raios caíram naquele ano e
em quais posições.
- Quantos raios já caíram: imprimir o número de raios que já caíram na cidade.
- Imprimir matriz: imprimir a matriz de tamanho largura x altura com a posição onde
ocorreu um raio, marcado com o símbolo X.
- Gravar arquivo: gravar cada célula da matriz com todas as suas informações (posição,
data que o raio caiu, valor da intensidade do raio e condições do tempo) em uma linha
do arquivo.
- Abrir arquivo: ler um arquivo com as informações sobre os raios que caíram em uma
dada cidade e permitir a continuação da marcação de novos raios para essa cidade

JORGE O CAÇADOR DE MITOS!!!!

ESSE É APENAS UM MODO DE FAZER!!!! COMENTEM!!!!

quarta-feira, 11 de maio de 2011

SALVANDO MEU ARRAY DE ESTRUTURA EM ARQUIVOS .BIN

Ai galera vou tentar se breve e objetivo:



como salvar minha estrutura de dados em um arquivo?
RESOLVENDO:

Primeiro, voce deve abrir o arquivo, depois salvar!!!

minha estrutura chama-se dados!!!
struct dados{
...
};

FILE *abrir_arquivo()
{

FILE *arquivo;
arquivo = fopen(" MEU_ARQUIVO", "wb");
if(!arquivo){
printf("**ERRO**   o arquivo nao pode ser aberto!!!");
exit (1);}
//lembre-se voce deve ler o tamanho da estrutura no seu arquivo, voce deve manipular seu arquivo do tipo qe voce sabia onde seu tamanho vai estar!!! DUVIDAS FALA AI!!

return arquivo;
}
void ler(FILE *arquivo, struct dados *vetor, int tamanho) {
for(int i = 0; i<tamanho; i++)
     fread(&vetor[i], sizeof(struct dados), 1, arquivo);
}

segunda-feira, 9 de maio de 2011

SALVANDO MEU ARRAY DE ESTRUTURA EM ARQUIVOS .TXT

Vou tentar ser o mais claro possível nesse tópico:

Exemplo:


tenho minha estrutura:

struct aluno{

        int idade;
        char nome[20];
        int matricula;
};

// fica pra você declarar na função main() o vetor de estrutura!!!

chamando a funçao:
void gravar(FILE *arq, int tam)// essa funçao nao retorna valor algum, apenas salva a minha estrutura
{
for(int i = 0; i<tam; i++)// laço pra percorrer todo meu vetor
{
fprintf(arq, "%d", vet[i].idade);
fprintf(arq, "%s", vet[i]nome.);
fprintf(arq, "%d", vet[i].matricula);
}
}
SUCESSO, AGORA SEUS DADOS DA ESTRUTURA ESTAO SALVOS!!
Se quiser que cada dado fique em uma linha, use um putc pra saltar linhas
putc('\n', arq);

AI SE CURTIU O TÓPICO DA UM UP AI!!!!! COMENTEM,  COMENTARIOS MOTIVAM A NOSSA BUSCA EM TENTA LHE AJUDAR!!!!! FLW

domingo, 8 de maio de 2011

Todos os programas do livro C Completo e Total.

Pra fazer o download clique aqui.

DERIVANDO A f(x).

Bem, no caso perguntado temos a seguinte função:

f(x)= g(x)/h(x)

f(x) = x+1/ √x²+3


aplicando a regra do quociente:


f(x) =[ 'g(x)*h(x) - g(x)* 'h(x) ]/ [h(x)]²


g(x) = x+1
h(x) = √x²+3


portanto;


'g(x) = 1;
'h(x) = 1/2*(1/√x²+3)* 2x;//aplica-se regra da cadeia, deriva a h(x) vezes a derivada do que ta dentro
h(x)² = x²+3


f(x) = [ 1*(√x²+3) - (x+1)*1/2*(1/√x²+3)* 2x]/ x²+3


espero ter ajudado, flw!!!

Raiz Quadrada.

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

int main(int argc, char** argv) {

    //Declara√ß√£o de variaveis
    double n, r;
    //Entrada de dados iniciais
    puts("Entre com um valor");
    scanf("%lf", &n);
    //Avalia√ß√£o do Processamento
    if(n >= 0){
        do{
            //Calcula a raiz e imprimi o resulado
            r = sqrt(n);
            printf("Restudado da raiz quadrada e: %f\n", r);
            //Faz nova leitura
            puts("Entre com outro valor: ");
            scanf("%lf", &n);
        }while(n >= 0);
    }//Fim SE
    puts("Numero negativo digitado. Finalizando...\n\n");
    return (EXIT_SUCCESS);
}//FIM

Criando Array.

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

int main(int argc, char** argv) {
    //Declarar variaveis
    int i;
    double A[5];//Declara array com capacidade de 5 valores
    //Entrada de dados no array
    i = 0; //inicializa o contador
    do{
        printf("Digite o valor A[%d] = ",i);//menssagem
        scanf("%lf", &A[i]);//leitura do valor na posi√ß√£o 1
        i++; //incremento
    }while(i < 5);
    //Busca da primeira ocorr√™ncia do valor 0

    i = 0;//inicializa contador

    while((i < 5) && (A[i] != 0)){
        i++;//incremento
    }
    if(i < 5){//entao
        printf("%d\n", i);
    }//fimentao
    else{//senao
        printf("Nao encontrado**\n");
    }//fimsenao

    return (EXIT_SUCCESS);
}


Isso ae.

sábado, 7 de maio de 2011


baixe o Keylemon, para proteger seu pc! download- KeyLemon

Baixe aqui neste link o camSpace, software que permita qualquer objeto coloca na frente da web cam virar um mouse, experimente agora. camSpace-download now 

Preenchendo meu array de estruturas

Quero preencher minha struct, e salvar no meu *vetor
muito simples, basta saber a posiçao. E se eu quiser que meu vetor seje unidimensional, que represente um bidimensional?
ta ai, como fazer?
kkkkkkk
exemplo:
//minha estrutura de dados
struct lista{

char nome[15];
int idade;
int dia;
int mes;
int ano;
};

int main(){

struct lista *vet;
int m, n;//dimensoes da minha matriz
//onde m é a altura(numero de linhas) e n é a largura(numero de colunas)
int x, y;// posicao onde vou salvar os dados na matriz linha  x coluna
int aux, pos;//aux é o tamnho do vetor
cout << "Entre com a altura da cidade\n";
cin >> m;
cout << "Entre com a largura\n";
cin >> n;
cout << "Onde deseja salvar: POSICAO  YxX, ou seja linha e coluna\n";// x é a coluna e y a linha
cout << "digite x\n";
cin >> x;
cout << "Digite y\n";
cin >> y;
//primeiro passo
// como meu vetor é unidimensional tenho que faze-lo se comportar como uma matriz, quantas posicoes tem uma matriz? é o numero de linha pelo numero de colunas, okay?
//entao;
aux = m*n;
//alocando o vetor
vet = (struct lista*)malloc(aux*sizeof(struct lista));
if(!vet){
cout >> "**ERRO** espaço insuficiente de memória\n";
exit (1);}
pos = (y*m) +x;
//entrando com os dos na minha estrutura
cout <<"Digite o nome\n";
gets_s(vet[pos].nome);
cout << "digite a idade\n";
cin >> vet[pos].idade;
cout <<"digite a data : DD/ MM/AAAA \n";
cin >> vet[pos].dia >> vet[pos].mes >> vet[pos].ano;
}//termine seu programa....

LEMBRE-SE, SEMPRE É BOM DIVIDIR SEU PROGRAMA EM MÓDULOS(FUNÇÕES) E SEMPRE COMENTAR NO QUE FOI FEITO

quem curtiu da um up!!

Alocando um vetor unidimensional em c e c++

Bem, a ideia é reservar um espaço de memória pro meu vetor, seja ele do tipo, int, float, char ou ate mesmo strcut

temos a funçao main()

int main(){

int a=15; // quero um vetor de tamanho 15
int *vet;//vetor do tipo de inteiro, cada int ocupa 4 bytes na memoria, okay?
//vamos alocar
vet = (int *)malloc(a*sizeof(int));// aloquei 15*4 bytes na minha memória para gravar meus numeros inteiros
}
//alocando um vet do tipo struct
//suponha que minha struct se chame, struct lista
//declaro na funcao main meu vet
int main(){

int a = 10;
struct lista *vet; // strcut lista é o tipo do meu vetor
//alocando meu struct lista
vet = (struct lista*)malloc(a*sizeof(struct lista))// reserva na minha memoria 10 *(tamanho da minha estrutura)
}

É isso ai se curtiu da um up ai, valeu

Frase palindrome em C

Um palíndromo é uma palavra ou um número que se lê da mesma maneira nos dois sentidos, normalmente, da esquerda para a direita e ao  contrário.
COMO SABER SE UMA FRASE É PALINDROME EM C?
Exemplos:
ANOTARAM A DATA DA MARATONA


ASSIM A AIA IA A MISSA


A DIVA EM ARGEL ALEGRA-ME A VIDA


*eliminando os espaços


se você pesquisar mais no google irá achar várias outra.


dai surge a dúvida, como fazer que meu computador verificar se elas são ou não palindromes?
Simples, basta programar, A VIDA ES'TA NA ARTE DE PROGRAMAR! 
kkkk


caso o usuário queria usar os comandos de entrada e saída (cin e cout) basta acrescentar a biblioteca
#include <iostream>
using namespace std; 



#include <iostream>//bibliotecas
#include <stdio.h>


void main()//função main- principal função do programa
{
char str[50];//string
int j, y, num=1;//declaração de inteiros
while(num){//inicia o laço para o usuario executar o programa quantas vezes desejar
system("cls");//limpa a tela
y=0;//atribui valores para as variaveis
j=0;
printf ("\nDigite a frase que desejar\n");
fflush(stdin);//limpa o buffer
gets_s(str);//recebe a string
j = strlen(str)-1;//j e o tamanho da string - 1
for(int i = 0; i < j         ; i++, j--){//laço for para percorrer a string
if(str[i] == ' ' || str[i] == '-')//elimina espaços e traços 
i++;
if(str[j] == ' ' || str[j] == '-')//elimina espaços e traços
j--;
if(str[i] != str[j]){//compara as posiçoes
y = 1;//caso for diferente as letras nas posiçoes y armazena 1
}
}
if(y == 0)// se y continuar com 0 a frase e palindroma 
printf("\nA frase e palindroma\n");
else// caso nao continue com 0 a frase nao e mais palindroma
printf("\nA frase nao e palindroma:\n");
printf("Digite 1 para continuar");
scanf("%d",&num);
if(num != 1)
break;
}//fim do laço while
}

Resolvendo com funçao recursiva

#include <conio.h>
#include <stdio.h>
#include <string.h>


int palindromo (char * str, int i, int j );
int main()
{
char frase[20];
int n, i=0;
printf("digite a da frase\n");
gets_s(frase);
n= strlen(frase)-1;
if(palindromo (frase,i, n)== 1)
printf("\nA frase e palindrome");
else
printf("\nA frase nao e palindrome");
getch();
return 0;
}
int palindromo (char *str, int i, int j )
{
if(*(str+i)== ' ' || *(str+i)== '-' || *(str+i)== '.')
i++;
if(*(str+j)== ' '|| *(str+j)== '-' || *(str+j)== '.')
j--;
if(i >= j )
return 1;
else 
{
if(*(str+i) == *(str+j))
return palindromo( str, i+1, j-1);


else
return 0;//caso a frase nao por palindrome a funçao retorna 0
}
}




Quem curtiu, da um up ai!

Multiplicando duas matrizes


Ta ai como multiplicar duas matriz em C, lembre-se de zerar todas as posiçoes da matriz resultado
ex:  matrizrsp[3][3] = {0}//assim voce zera
pois uma soma sempre se começa com 0

A FUNÇÃO É: void pois nao retorna valor nenhum, caso queria retorna voce deve usar ponteiros
assim sim vc return um vetor
void mult(float matriz1[3][3], float matriz2[3][3],float matrizrsp[3][3],int num)
{
for(int i = 0; i < num; i++)
for(int j = 0; j<num; j++)
    for(int k = 0; k<num; k++)
soma+=matriz1[i][k]*matriz2[k][j];
}

up ai quem curtiu

Downloads IDE.

NetBeans IDE 7.0