WagCez 0 Denunciar post Postado Junho 5, 2011 pessoal meu professor da facul passou 10 exercicios pra cada um da minha turma resolver valendo 2 pontos e como estou precisando muito, estou implorando ajuda de vcs eu jah consegui resolver 6 e faltam apenas 4 (dãããã) desses quatro um to quase terminando e outro pelo menos comecei os outros dois nem sei como começar aew estão eles: Ah! Eu uso o Dev C++ e é em Linguagem C (normal msm), as respostas tem que ser rodadas nele 1ª Questão (esse jah comecei mas não consigo terminar) Faça um algoritmo para calcular a distribuição de freqüência de 15 valores sorteados de 0 a 9. Suponha os seguintes números sorteados: 4,5,7,8,9,1,8,2,4,3,2,5,6,7,0 Saída do programa: Número 0: 1 vez Número 1: 1 vez Numero 2: 2 vezes Número 3: 1 vez Número 4: 2 vezes Número 5: 2 vezes Número 6: 1 vez Número 7: 2 vezes Numero 8: 2 vezes Número 9: 1 vez 2ªQuestão(esse to quase acabando, mas tem um pequeno detalhe que nao sei qual eh, q não me deixa terminar) Elabore um algoritmo que calcule um número inteiro que mais se aproxima da raiz quadrada de um número fornecido pelo usuário.( nesse exercicio quer um valor inteiro aproximado da raiz de um numero decimal, soh que quando faço, ele arredonda pra mais ou pra menos(por exemplo se a raiz foi 2.2 o resultado final era pra ser 2 e se fosse 2.9 era pra ser 3, soh que quando eu faço para esses dois resultados ou a resposta é 2 ou 3 pors dois numeros(nesse eu usei floor e ceil))) 3ª questão (tenho ideia de como fazer, só não sei fazer) Faça um algoritmo que dadas duas matrizes A(10x4) e B(4x3), calcule a matriz C, onde C=A*B. 4ª questão(nem faço ideia, soh sei que é registro) Para controle dos veículos em uma determinada cidade, a Secretaria de Transportes criou o seguinte registro: - Nome do Proprietário - Número do Chassi - Modelo do veículo - Marca - Cor - Combustível - Ano de Fabricação - Placa Sabendo que o número máximo de veículos na cidade é 5000, e suponha que os veículos já foram todos cadastrados (5000 veículos). a) Construa um algoritmo que liste todos os proprietários cujos carros são do ano de 1990 ou inferior, e movidos a gasolina. b ) Escreva um algoritmo que liste todas as placas e os proprietários dos veículos que comecem com a letra 'A' e terminem com '0', '2' ou '7'. DICA: faça com que a placa seja um vetor de caracteres! c) Elabore um algoritmo que liste o modelo e a cor do automóvel cuja soma dos caracteres numéricos da placa seja par. DICA: use uma função char2int() - character-to-integer – para converter um caracter numérico em um número. Exemplo: CARACTER c INTEIRO i c ← '2'; //suponha que c recebe o caracter '2' i ← char2int©; // agora, isso é o mesmo que i = 2 i ← char2int('3'); //agora, isso é o mesmo que i = 3 d) Permita a troca do nome do proprietário do veículo informando-se o número do chassi do carro. E não é preguiça e nem falta de vontade, soh estou desesperado porq não consigo fazer mas enquanto isso, vou tentar resolver aki Abraços e agradeço Compartilhar este post Link para o post Compartilhar em outros sites
LCS 0 Denunciar post Postado Junho 5, 2011 Imagino que seja a pessoa que me enviou o e-mail hoje.. Fico feliz que tenha se interessado em procurar ajuda numa comunidade tão grande e de tamanha qualidade como o imaster. Infelizmente você, aparentemente, não leu as regras do fórum, e por isso errou o título do tópico,onde é proibido constar palavras como dúvida. Como disse que já havia começado alguns exercícios, poste aqui o que já tem feito, assim podemos analisar os possíveis erros no seu código, bem como, verificar qual seu nível em relação a lógica, para adequar a forma de auxílio. Vamos as questões. 1ª >> Para resolver esse exercício é necessário usar uma estrutura de repetição e uma estrutura condicional. Aconselho usar o While e o IF; 2ª >> Se você quer um valor inteiro ele não pode ser decimal. Via de regra quando queremos arredondar um número seguimos a seguinte lógica: 2,01 a 2,49 exibi-se 2 , 2,5 exibe-se 2,5 e para 2,51 a 2,99 mostra-se 3; Então se você não quer arredondar você não pode setar uma variável com o tipo inteiro(int,integer), você precisa Setar para Real(float,Double). 3ª >> Bom imagino que você tenha que alimentar a matriz C com o produto da multiplicação de A e B,certo? Logo você precisa criar a matriz C e nos cálculos puxar os valores de A e B e guardar em C. 4ª >> Infelizmente você errou. Esse exercício não tem nada haver com registro. Veja bem, para melhor utilização desse algoritmo, seria necessário o uso de um banco de dados, porém não é o caso. Esse exercício é o mais trabalhoso, porém um dos mais simples e fáceis dos 4. Você vai precisar usar estruturas condicionais e de repetição. Finalizando, você precisa melhorar a redação do seu tópico, para facilitar o entendimento de quem vai te ajudar.Quando for postar o seu código, por favor use a tag CODE. Abcx, LCS Compartilhar este post Link para o post Compartilhar em outros sites
WagCez 0 Denunciar post Postado Junho 5, 2011 Vlw o 1º e 2º ja consegui fazer(nesse era só usar round em vez de floor ou ceil) o 3º jah tenho ideia de como começar e terminar Soh o ultimo q tah dando uns erros e se continuar eu posto o CODE Flw Desculpa peo trantorno Compartilhar este post Link para o post Compartilhar em outros sites
Renato Utsch 24 Denunciar post Postado Junho 6, 2011 Olá! Não vamos fazer seus exercícios para você. Poste o que já fez sobre os exercícios que não conseguiu fazer, e podemos te dar dicas de como terminá-lo. Abraços :D Compartilhar este post Link para o post Compartilhar em outros sites
WagCez 0 Denunciar post Postado Junho 6, 2011 Aqui está o exercício 3 #include <stdio.h> #include <stdlib.h> main() { //Definição de variaveis int i, j, l, c, l1, c1, X; //Entrada de dados printf("\n Informe a quntidade de linhas da matriz A : "); scanf("%d",&l); printf("\n Informe a quantidade de colunas da matriz A : "); scanf("%d",&c); printf("\n Informe a quntidade de linhas da matriz B : "); scanf("%d",&l1); printf("\n Informe a quantidade de colunas da matriz B : "); scanf("%d",&c1); float matrizA[l][c],matrizB[l1][c1],matrizC[c][l1],Aux=0; if(c==l1) { for(i=0; i<l; i++) { for(j=0; j<c; j++) { printf("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da Matriz A: ", i+1, 167, j+1, 167); scanf("%f", &matrizA[i][j]); } printf("\n"); } for(i=0; i<l1; i++) { for(j=0; j<c1; j++) { printf("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da 2%c Matriz B: ", i+1, 167, j+1, 167, 167); scanf("%f", &matrizB[i][j]); } printf("\n"); } printf("---------------------------- 1 - Matriz Gerada ---------------------------------\n\n"); for(i=0; i<l; i++) { for(j=0; j<c; j++) { printf("%6.f", matrizA[i][j]); } printf("\n\n"); } printf("---------------------------- 2 - Matriz Gerada ---------------------------------\n\n"); for(i=0; i<l1; i++) { for(j=0; j<c1; j++) { printf("%6.f", matrizB[i][j]); } printf("\n\n"); } //Processamento e saida em tela for(i=0; i<l; i++) { for(j=0; j<c1; j++) { matrizC[i][j]=0; for(X=0; X<l1; X++) { Aux += matrizA[i][X] * matrizB[X][j]; } matrizC[i][j]=Aux; Aux=0; } } printf("\n\n"); printf("---------------------------- 3 - Matriz Gerada ---------------------------------\n\n"); for(i=0; i<l; i++) { for(j=0; j<c1; j++) { printf("%6.f", matrizC[i][j]); } printf("\n\n"); } printf("\n\n"); } else { printf("\n\n Nao ha com multiplicar as matrizes dadas "); } system("pause"); return 0; } A metade da matriz final está certo e a outra metade errada Qual q foi o erro? Compartilhar este post Link para o post Compartilhar em outros sites
Renato Utsch 24 Denunciar post Postado Junho 8, 2011 Cara, tenha paciência! Ninguém é obrigado a responder você não. Tem só 2 dias. Aguarde. Compartilhar este post Link para o post Compartilhar em outros sites
WagCez 0 Denunciar post Postado Junho 8, 2011 Aleluia, consegui (eu tinha trocado coluna com linha em um certo momento) mas tem um porém Ela ficou imensa, mas disso já sabia Só que ela pede para fornecer o número de linhas e colunas das duas matrizes e depois atribuir os componentes de cada matriz Mas meu prof q passou esse exercício disse que já queria as matrizes fixas (A(10x4) e B(4x3)) e era só atribuir os componentes e não as linhas e colunas O que devo mudar nela então? Aqui está ela: #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int i, j, lA, cA, lB, cB, X; printf("\n Informe a quantidade de linhas da matriz A : "); scanf("%d",&lA); printf("\n Informe a quantidade de colunas da matriz A : "); scanf("%d",&cA); printf("\n Informe a quantidade de linhas da matriz B : "); scanf("%d",&lB); printf("\n Informe a quantidade de colunas da matriz B : "); scanf("%d",&cB); float matrizA[lA][cA],matrizB[lB][cB],matrizC[lA][cB],Aux=0; if(cA==lB) { for(i=0; i<lA; i++) { for(j=0; j<cA; j++) { printf("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da Matriz A: ", i+1, 167, j+1, 167); scanf("%f", &matrizA[i][j]); } printf("\n"); } for(i=0; i<lB; i++) { for(j=0; j<cB; j++) { printf("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da 2%c Matriz B: ", i+1, 167, j+1, 167, 167); scanf("%f", &matrizB[i][j]); } printf("\n"); } printf("Matriz A \n\n"); for(i=0; i<lA; i++) { for(j=0; j<cA; j++) { printf("%6.f", matrizA[i][j]); } printf("\n\n"); } printf("Matriz B \n\n"); for(i=0; i<lB; i++) { for(j=0; j<cB; j++) { printf("%6.f", matrizB[i][j]); } printf("\n\n"); } for(i=0; i<lA; i++) { for(j=0; j<cB; j++) { matrizC[i][j]=0; for(X=0; X<lB; X++) { Aux += matrizA[i][X] * matrizB[X][j]; } matrizC[i][j]=Aux; Aux=0; } } printf("\n\n"); printf("Matriz Gerada da Multiplicação: A*B \n\n"); for(i=0; i<lA; i++) { for(j=0; j<cB; j++) { printf("%6.f", matrizC[i][j]); } printf("\n\n"); } printf("\n\n"); } else { printf("\n\n Nao ha como multiplicar as matrizes dadas \n"); } system("pause"); return 0; } E dos números sorteados não estou conseguindo fazer a contagem, apenas consigo "sortear" os números Só consegui começar Está aqui #include<stdlib.h> #include<stdio.h> #include<math.h> int main() { int numsort, i; for(i=0; i<15; i++){ printf("Digite um numero de 0 a 9: "); scanf("%d", &numsort); } system("PAUSE"); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
Renato Utsch 24 Denunciar post Postado Junho 8, 2011 No programa dos números sorteados, a cada interação do loop você aumenta em um a variável i. Se você mostrar ela depois que o for acabar, ela vai mostrar a contagem de quantas vezes o cara inseriu tal número. É isso que você queria? Abraços :D Compartilhar este post Link para o post Compartilhar em outros sites
WagCez 0 Denunciar post Postado Junho 8, 2011 A variavel i que coloquei serve para ficar sorteando até chegar a 15 números de 0 a 9 Agora, eu acho, que preciso de outra variável para contar quantas vezes cada número apareceu Não sei se foi isso que quis dizer Em questão da matriz, consegui deixar fixas as linhas e as colunas, apenas atribuindo valores para seus componentes, além de ter ficado menor está aí #include <stdio.h> #include <stdlib.h> #include <math.h> int main(){ int i, j, lA, cA, lB, cB, x; lA=10; cA=4; lB=4; cB=3; float matrizA[lA][cA],matrizB[lB][cB],matrizC[lA][cB],Aux=0; for(i=0; i<10; i++){ for(j=0; j<4; j++){ printf("Informe os Componentes da Matriz A(por linha): "); scanf("%f", &matrizA[i][j]); } printf("\n"); } for(i=0; i<4; i++){ for(j=0; j<3; j++){ printf("Informe os componentes da Matriz B(por linha): "); scanf("%f", &matrizB[i][j]); } printf("\n"); } printf("Matriz A \n\n"); for(i=0; i<10; i++){ for(j=0; j<4; j++){ printf("%6.f", matrizA[i][j]); /* "%6.f" significa para eliminar 6 casas decimais dos componentes dados */ } printf("\n\n"); } printf("Matriz B \n\n"); for(i=0; i<4; i++){ for(j=0; j<3; j++){ printf("%6.f", matrizB[i][j]); } printf("\n\n"); } for(i=0; i<10; i++){ for(j=0; j<3; j++){ matrizC[i][j]=0; for(x=0; x<4; x++){ Aux += matrizA[i][x] * matrizB[x][j]; /* x signica que a quantdade de colunas da Matriz A é mesma que as linhas da Matriz B */ } matrizC[i][j]=Aux; Aux=0; } } printf("\n\n"); printf("Matriz Gerada da Multiplicacao: A*B \n\n"); for(i=0; i<10; i++){ for(j=0; j<3; j++){ printf("%6.f", matrizC[i][j]); } printf("\n\n"); } printf("\n\n"); system("pause"); return 0; } Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Renato Utsch 24 Denunciar post Postado Junho 8, 2011 Ah, entendi! Você precisa usar um switch: switch(varx) { case 0: vet[0]++; case 1: vet[1]++; case 2: vet[2]++; case 3: vet[3]++; /* ... */ case 9: vet[9]++; default: printf("Valor Inválido!"); } Aí você no final printa o número de vezes que tal valor foi chamado... Abraços :D Compartilhar este post Link para o post Compartilhar em outros sites
WagCez 0 Denunciar post Postado Junho 8, 2011 vlw vou tentar mais tarde tenho que sair agora abraços Compartilhar este post Link para o post Compartilhar em outros sites
WagCez 0 Denunciar post Postado Junho 9, 2011 Cosegui a matriz e os números Matriz (lembrando que o número de colunas e linhas já foram dados) /*24. Faça um algoritmo que dadas duas matrizes A(10x4) e B(4x3), calcule a matriz C, onde C=A*B.*/ #include <stdio.h> #include <stdlib.h> #include <math.h> int main(){ int i, j, lA, cA, lB, cB, x; lA=10; cA=4; lB=4; cB=3; float matrizA[lA][cA],matrizB[lB][cB],matrizC[lA][cB],Aux=0; for(i=0; i<10; i++){ for(j=0; j<4; j++){ printf("Informe os Componentes da Matriz A(por linha): "); scanf("%f", &matrizA[i][j]); } printf("\n"); } for(i=0; i<4; i++){ for(j=0; j<3; j++){ printf("Informe os componentes da Matriz B(por linha): "); scanf("%f", &matrizB[i][j]); } printf("\n"); } printf("Matriz A \n\n"); for(i=0; i<10; i++){ for(j=0; j<4; j++){ printf("%6.f", matrizA[i][j]); /* "%6.f" significa para eliminar 6 casas decimais dos componentes dados */ } printf("\n\n"); } printf("Matriz B \n\n"); for(i=0; i<4; i++){ for(j=0; j<3; j++){ printf("%6.f", matrizB[i][j]); } printf("\n\n"); } for(i=0; i<10; i++){ for(j=0; j<3; j++){ matrizC[i][j]=0; for(x=0; x<4; x++){ Aux+= matrizA[i][x] * matrizB[x][j]; /* x significa que a quantidade de colunas da Matriz A é mesma que as linhas da Matriz B */ } matrizC[i][j]=Aux; Aux=0; /* Aux significa guardar valor para não ser perdido durante o algoritmo - Pág 40-41 */ } } printf("\n\n"); printf("Matriz Gerada da Multiplicacao A*B \n\n"); for(i=0; i<10; i++){ for(j=0; j<3; j++){ printf("%6.f", matrizC[i][j]); } printf("\n\n"); } printf("\n\n"); system("PAUSE"); return 0; } Números Sorteados /* 13. Faça um algoritmo para calcular a distribuição de freqüência de 15 valores sorteados de 0 a 9. Suponha os seguintes números sorteados: 4,5,7,8,9,1,8,2,4,3,2,5,6,7,0 Saída do programa: Número 0: 1 vez Número 1: 1 vez Numero 2: 2 vezes Número 3: 1 vez Número 4: 2 vezes Número 5: 2 vezes Número 6: 1 vez Número 7: 2 vezes Numero 8: 2 vezes Número 9: 1 vez */ #include<stdlib.h> #include<stdio.h> #include<math.h> int main(){ int numsort, i, v[10]; for(i=0;i<10;i++){ v[i]=0; } for(i=0; i<15; i++){ printf("Digite um numero de 0 a 9: "); scanf("%d", &numsort); v[numsort]++; } for(i=0;i<10;i++){ printf("\nNumero %d: %d vez(es)\n\n", i, v[i]); } system("PAUSE"); return 0; } Agradeço a ajuda de todos Mas alguém ainda pode me dar uma forcinha na última questão, porq nem sei como começar, mas meu prof falou q tem q ser por registro Compartilhar este post Link para o post Compartilhar em outros sites
guidjos 65 Denunciar post Postado Junho 9, 2011 O último exercício é simples. Você deve operar sobre structs. Na verdade, como seu professor pediu que fosse criado um algoritmo, você pode escrever pseudo-código. Leia sobre 'struct', 'dot operador', 'arrow operator' e 'aggregate types'. Contudo, tenho uma observação: a função char2int() não existe no padrão do C. Ela é completamente desnecessária. Objetos de tipo 'char' podem ser vistos como objetos de tipo 'int' que representam elementos de intervalos menores. Para mais informações, sugiro que leia este post. Compartilhar este post Link para o post Compartilhar em outros sites
WagCez 0 Denunciar post Postado Junho 11, 2011 Pode colocar esse tópico com já resolvido Registro é muito fácil (a ultima questão) Meu prof falou que queria aprnas a estrutura dos algoritmos e não era necessário compilar Vlw aew Compartilhar este post Link para o post Compartilhar em outros sites
leeland 0 Denunciar post Postado Junho 24, 2011 PESSOAL ME AJUDEM! MEU PROFESSOR TAMBÉM PASSOU PRA GENTE FAZER UM PROGRAMA QUE MULTIPLIQUE MATRIZES, ESSE TÓPICO AJUDOU MUITO E EU ENTENDI COMO QUE FAZ , SÓ TEM UMA PARTE QUE NÃO ENTENDI: printf("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da 2%c Matriz B: ", i+1, 167, j+1, 167, 167); QUE SIGNIFICA ESSE NUMERO 167? ELE APARECE QUANDO A GENTE DIGITA ("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da 2%c Matriz B: ") EU ESTOU USANDO O DEV C++, QUANDO EU TIRO ESSAS INFORMAÇÕES i+1, 167, j+1, 167, 167 ELE NÃO COMPILA Compartilhar este post Link para o post Compartilhar em outros sites
guidjos 65 Denunciar post Postado Junho 24, 2011 PESSOAL ME AJUDEM! MEU PROFESSOR TAMBÉM PASSOU PRA GENTE FAZER UM PROGRAMA QUE MULTIPLIQUE MATRIZES, ESSE TÓPICO AJUDOU MUITO E EU ENTENDI COMO QUE FAZ , SÓ TEM UMA PARTE QUE NÃO ENTENDI: printf("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da 2%c Matriz B: ", i+1, 167, j+1, 167, 167); QUE SIGNIFICA ESSE NUMERO 167? ELE APARECE QUANDO A GENTE DIGITA ("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da 2%c Matriz B: ") EU ESTOU USANDO O DEV C++, QUANDO EU TIRO ESSAS INFORMAÇÕES i+1, 167, j+1, 167, 167 ELE NÃO COMPILA Não. Nem li seu post. Crie um tópico descrevendo seu problema e com perguntas específicas sobre a programação em C. Não poste usando CAPS LOCK. Não poste código sem a tag "code". Compartilhar este post Link para o post Compartilhar em outros sites