Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Adrianassa

Conteúdo especifico Algoritmos e Programação Linguagem C++

Recommended Posts

Pessoal, boa noite.

 

Estou começando a estudar Linguagem de Programação e atualmente estou cursando uma disciplina chamada Algoritmos e Programação.

Sou extremamente encantada por programação, mas, andei perdendo algumas aulas, gostaria de uma consulta nos exercícios abaixo. Se puderem ajudar agradeceria muito, esses exercícios são para entregar e valem nota.

 

 

Vamos lá 1° exercício - Esse eu não consegui fazer...

 

Escreva um programa que imprima os N primeiros números da seqüência de Fibonacci, onde cada termo é obtido pela soma dos dois termos anteriores.

Exemplo: 1, 1, 2, 3, 5, 8, 13, ...

 

 

 

 

2° exercício

 

Uma livraria deseja efetuar uma pesquisa sobre os livros vendidos no mês. Para cada livro vendido o funcionário deve preencher um questionário, informando o tipo ( 1 - Ficção / 2 – Romance / 3 – Aventura ), o ---o do comprador (M-masculino / F - feminino).

 

 

Como não existe a informação do tipo de livro "suspense" fica difícil calcular "Percentual de homens que lêem livros de suspense".

Considerando "aventura" no lugar de "suspense" no cálculo do percentual.


#include <stdio.h> 
int main() { 
   int tipo, qtd=0, qtd_fi=0, qtd_ro=0, qtd_av=0, qtd_H_av=0; 
   char ---o; 

   printf("Tipo de livro\n\t1 - Ficção\n\t2 – Romance\n\t3 – Aventura\n"); 
   printf("Informe o tipo de livro: "); 
   scanf("%d", &tipo); 
   while (tipo != 0) { 
      qtd++; 
      switch (tipo) { 
         case 1: 
            qtd_fi++; 
            break; 
         case 2: 
            qtd_ro++; 
            break; 
         case 3: 
            qtd_av++; 
            break; 
         default: 
            printf("Tipo de livro inválido\n"); 
      } 
      printf("Informe o ---o do comprador [M/F]: "); 
      scanf("%c ", &---o); 

      if (---o == 'M' || ---o == 'm') && (tipo = 3) 
         qtd_H_av++; 

      printf("Informe o tipo de livro: "); 
      scanf("%d", &tipo); 
   } 

   if (qtd_fi > qtd_ro && qtd_fi > qtd_av) 
      printf("Tipo de livro mais vendifo no mês: Ficção\n") 

   else 
      if (qtd_ro > qtd_fi && qtd_ro > qtd_av) 
         printf("Tipo de livro mais vendifo no mês: Romance\n") 
      else 
         printf("Tipo de livro mais vendifo no mês: Aventura\n") 

   printf("Percentual de homens que lêem livros de aventura: %.2f%%\n", (float) qtd_H-av * 100 / qtd); 
   return 0; 
}

 

 

 

 

 

 

3° exercício

 

Escreva um programa que lê um vetor com 12 elementos e determine o maior e o menor elemento desse vetor, e também as suas respectivas posições. Admita que exista uma única ocorrência para cada valor

 

 

#include <stdio.h> 
int main() { 
   int vet[12], i, maior, pos_maior, menor, pos_menor; 
   for (i=0; i<12; i++) { 
      printf("Informe vet[%d]: ", i); 
      scanf("%d", &vet[i]); 
   } 

   maior = menor = vet[0]; 
   pos_maior = pos_menor = 0; 
   for (i=1; i<12; i++) 
      if (maior < vet[i]) { 
         maior = vet[i]; 
         pos_maior = i; 
      } 
   else 
      if (menor > vet[i]) { 
         menor = vet[i]; 
         pos_menor = i; 
      } 

   printf("Maior: %d na posição %d\n", maior, pos_maior); 
   printf("Menor: %d na posição %d\n", menor, pos_menor); 
   return 0; 
}

 

 

 

 

4° exercício

 

Fazer um programa para ler uma seqüência de até 20 números inteiros e positivos, e armazená-los em um vetor. Em seguida deve ser gerado um segundo vetor contendo todos os elementos da seqüência lida, sem repetições. No final, o programa deverá imprimir as duas seqüências.

 

 

#include <stdio.h> 
int main() { 
   int x[20], y[20], i, j, k=0, nao_consta; 
   for (i=0; i<20; i++) { 
      printf("Informe x[%d]: ", i); 
      scanf("%d", &x[i]); 
   } 

   for (i=0; i<20; i++) { 
      nao_consta = 0; 
      for (j=0; j<i-1; j++) 
         if (x[i] == x[j]) 
            nao_consta = 1; 
      if (nao_consta == 0) 
         y[k++] = x[i]; 
   } 

   printf("Vetor original:\n"); 
   for (i=0; i<20; i++) 
      printf("\t%d", x[i]); 
   printf("\nSem repetições:\n"); 

   for (j=0; j<k; j++) 
      printf("\t%d", y[j]); 
   printf("\n"); 
   return 0; 
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera da mesma turma vindo aqui em massa? http://forum.imasters.com.br/topic/522124-mudar-uma-opcao-de-escolha-de-numero-para-caracteres/

 

P/ o primeiro exercício você pode usar recursão ou a fórmula de Binet:http://mathworld.wolfram.com/BinetsFibonacciNumberFormula.html

 

O 2º exercicio, se for a mesma turma, é o mesmo do link apontado.

 

No 3º exercício eu armazenaria somente a posição dos números, já que o valor vc vai obter por indexação.

 

 

#include <stdio.h> 
int main() { 
   int vet[12], i, pos_maior, pos_menor; 
   for (i=0; i<12; i++) { 
      printf("Informe vet[%d]: ", i); 
      scanf("%d", &vet[i]); 
   } 

   pos_maior = pos_menor = 0; 
   for (i=1; i<12; i++) {
      if (vet[i] > vet[pos_maior]) {
         pos_maior = i;
      } else {
         if (vet[i] < vet[pos_menor])
            pos_menor = i; 
      } 
   }
   printf("Maior: %d na posição %d\n", vet[pos_maior], pos_maior); 
   printf("Menor: %d na posição %d\n", vet[pos_menor], pos_menor); 
   return 0; 
}

 

 

Não sei se vc já viu funções, mas isso facilita um pouco o 4º exercício.

 

#include <stdio.h> 
#define MAX 20
 
/* Retorna 0 caso o elemento de x não está em y e 1 caso contrário. */
int repete(int elemento_x, int[] y, int pos_y) {
   int i;
   for(i=0; i < pos_y && elemento_x != y[i]; i++); // Loop vazio para encontrar o elemento de x que já está em y
   if (i >= pos_y) return 0;
   return 1;
}
 
void imprime_vetor(int[] vetor, int tamanho_vetor) {
   int i;
   for(i=0; i<tamanho_vetor; i++) {
      printf("%d%c", vetor[i], (i == tamanho_vetor-1)? '\n', ' ');
   }
}
 
int main() { 
   int x[MAX], y[MAX];
   int qtde_elementos_x, qtde_elementos_y;
   int pos_x, pos_y;

   for (pos_x=0; pos_x<MAX; pos_x++) { 
      printf("Informe x[%d]: ", pos_x); 
      scanf("%d", &x[pos_x]); 
   }
 
  qtde_elementos_x = MAX;
  qtde_elementos_y = 0;
  pos_y = 0;
 
  for(pos_x=0; pos_x<qtde_elementos_x; pos_x++) {
     if (!repete(x[pos_x],y, pos_y)) {
         y[pos_y] = x[pos_x];
         pos_y++;
     }
  }
  qtde_elementos_y=pos_y;
 
  printf("Vetor original:\n");
  imprime_vetor(x, qtde_elementos_x);
 
  printf("Vetor sem repetições:\n");
  imprime_vetor(y, qtde_elementos_y);
 
 return 0;
}

 

OBS: sem compilador disponível...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desespero e medo de prova final é o maior motivo rs

Inclusive tenho prova dele hoje a noite...

Perdi muitas aulas to meio voando ainda, obrigada pelo retorno.

Já fez a prova dele? 2ª avaliação

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não faço a menor idéia do que vc está falando. Me formei na UFPR em 2009.

Compartilhar este post


Link para o post
Compartilhar em outros sites

rapaz a unifacs ta em massa aqui?! hahahaha


Ops! Desculpe, achei que fosse alguém da mesma Universidade que eu aqui na Unifacs.

 

Valw

o problema maior q eu nem quero mto pegar o algoritmo feito, queria mesmo era entender passo a passo a "logica" pra montar esse algoritmo =) rsrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.