Construção De Algoritimos
Ensaios: Construção De Algoritimos. Pesquise 862.000+ trabalhos acadêmicosPor: • 23/11/2013 • 2.489 Palavras (10 Páginas) • 234 Visualizações
Imprimir a soma de todos os números impares entre x e y
Representação em pseudolinguagem:
Algoritmo "Somar e selecionar Números Impares"
Função: Somar números impares compreendido entre dois números proposto pelo usuário
Autor: Reginaldo Batista de Souza
Data: 29/08/2013
Trabalho: ATPS Faculdade Anhanguera etapa 1 segundo semestre 2013
// DECLARANDO VARIÁVEIS
var
vet: vetor [1..6] de inteiro
i: inteiro
Inicio:
//TÍTULO
escreval (" SOME TODOS OS NUMEROS IMPARES COMPREENDIDOS ENTRE DOIS NUMEROS")
// Pede ao usuario que digite a quantidade de casos que gostaria de avaliar
escreval ("Informe a quantidade de casos a serem avaliados")
//Lê a quantidade de casos a ser avaliado e guarda na variável
leia(vet[1])
// CONTADOR DO NUMERO DE CASOS
para i de 1 ate vet[1] faca
// Pede ao usuário que digite dois valores para serem avaliados
escreval ("Digite Dois números para serem avaliados")
//Lê o primeiro e o segundo valor numero a ser avaliado e guarda na variável
leia(vet[3],vet[4])
//PARA E VERIFICA AS ENTRADAS
// Avalia se o segundo número é maior que o primeiro se for maior:
se (vet[4]<vet[3])então
//Usa a variável 'a' para guardar o valor de 'vet[3]'
vet[2]<-vet[4]
//Em seguida faz a troca 'vet[3]' recebe 'vet[2]'
vet[4]<-vet[3]
//E 'vet[2]' recebe 'a' que por sua vez contém 'vet[3]'
vet[3]<-vet[2]
//Finaliza 'se' da troca entre 'vet[2]e vet[3]'
Fimse
//AVALIA SE vet[3] É IMPAR
// Apresenta ao usuário todos os numeros impares entre 'vet[2]' e 'vet[3]'.
escreval ("Os numeros ímpares entre o primeiro e o ultimo numero informado são:")
// Se o resto da divisão de 'vet[3]' for '0' então
se (vet[4] mod 2 = 0 )então
//obs.: sem essa expressão o contador acrescenta mais 1 a 'vet[3]' fazendo com que a soma, saia fora dos parâmetros.
vet[4]<- vet[4]-1
fimse
// CONTADOR DE IMPAR 'vet[2]' E 'vet[3]'
//Passo 2 é necessário
para vet[3] de vet[3] ate vet[4] passo 2 faca
//AVALIA SE 'vet[2]' É IMPAR
se (vet[3] mod 2 = 0 )então
vet[3]<-vet[3]+1
ACUMULADOR RECEBE DADOS
// Acumulador do intervalo de 'vet[2]' para 'vet[3]'
vet[5]<-vet[5]+vet[3]
escreval("vet[3]")
vet[5]<-vet[5]+1
//Finaliza se, pois se o número que o usuário digitar for, par somado a '1' ele se tornará impar
Fimse
fimpara
//Imprime a soma dos números impares caso a caso
escreval("A soma total deste caso é: ",vet[5])
fimpara
fim
Representação em gráfica:
Tabelas verdade:
Código fonte:
print 1 – Contar números impare
#include <stdio.h>
#include <stdlib.h>
int main(){
int vet[5];
int i;
printf (" SOME TODOS OS NUMEROS IMPARES COMPREENDIDOS ENTRE DOIS NUMEROS\n ");
printf("Informe a quantidade de casos a serem avaliados\n ");
scanf("%d",&vet[0]);
// CONTADOR DO NUMERO DE CASOS
for(i=1; i<=vet[0];i++){
printf("Digite Dois numeros para serem avaliados:\n ");
scanf("%d %d",&vet[2],&vet[3]);
//PARA E VERIFICA AS ENTRADAS
if (vet[3]<vet[2]){
vet[1]=vet[3];
vet[3]=vet[2];
vet[2]=vet[1];
}
//AVALIA SE vet[3] É IMPAR
printf("Os numeros \xA1mpares entre o primeiro e o último número informado s\x84o:\n");
if(vet[3] % 2){
vet[3]=vet[3]-1;
}
// CONTADOR DE IMPAR 'vet[2]' E 'vet[3]'
for(vet[4]=0; vet[2]<vet[3]; vet[2]++){
//AVALIA SE 'vet[2]' É IMPAR
if(vet[2]%2==0){
vet[2]=vet[2]+1;
//ACUMULADOR RECEBE DADOS
vet[4]=vet[4]+vet[2];
printf("%d,",vet[2]);
}
} .
printf(" \nA soma total deste caso \x82...%d\n ",vet[4]);
system ("PAUSE>>NULL");
}
Média de distância em metros
Link para o código fonte.cpp Distancia em metros.cpp
Link para o aplicativo.exe. Distancia em metros.exe
Algoritmo "Media de distância em metros"
Função: Medir a distância entre um ponto fixo, para 4 pontos e retornar a média com 1 casa decimal
Autor: Alexandre Robson de Oliveira
Data: 29/09/2013
Trabalho: ATPS Faculdade Anhanguera etapa 2 segundo semestre 2013
Representação em pseudolinguagem:
var
Nome1, Nome2, Nome3, Nome4: CARACTER //Declaração das variáveis para inclusão de nomes
Distancia1, Distancia2, Distancia3, Distancia4, Media: REAL //Declaração das variáveis para inclusão das distancias, e a média para receber a média das somas divididas pela quantidade de distancias informadas.
Inicio
ESCREVA ("INFORME O NOME DE SEU AMIGO:”) //Solicita ao usuário o nome da primeira variável Nome1
LEIA (Nome1) //Lê o nome informado pelo usuário e guarda na variável Nome1
ESCREVA ("INFORME A DISTANCA ENTRE A SUA CASA E DE SEU COLEGA: ", Nome1,":”) //Solicita ao usuário a distância entre sua casa e de seu primeiro amigo Distancia1
LEIA (Distancia1) //Lê a distância informada pelo usuário e guarda na variável Distancia1
ESCREVA ("INFORME O NOME DE SEU AMIGO:”) //Solicita ao usuário o nome da primeira variável Nome2
LEIA (Nome2) //Lê o nome informado pelo usuário e guarda na variável Nome2
ESCREVA ("INFORME A DISTANCA ENTRE A SUA CASA E DE SEU COLEGA: ", Nome2,":”) //Solicita ao usuário a distância entre sua casa e de seu primeiro amigo Distancia2
LEIA (Distancia2) //Lê a distância informada pelo usuário e guarda na variável Distancia2
ESCREVA ("INFORME O NOME DE SEU AMIGO:”) //Solicita ao usuário o nome da primeira variável Nome3
LEIA (Nome3) //Lê o nome informado pelo usuário e guarda na variável Nome3
ESCREVA ("INFORME A DISTANCA ENTRE A SUA CASA E DE SEU COLEGA: ", Nome3,":”) //Solicita ao usuário a distância entre sua casa e de seu primeiro amigo Distancia3
LEIA (Distancia3) //Lê a distância informada pelo usuário e guarda na variável Distancia3
ESCREVA ("INFORME O NOME DE SEU AMIGO:”) //Solicita ao usuário o nome da primeira variável Nome4
LEIA (Nome4) //Lê o nome informado pelo usuário e guarda na variável Nome4
ESCREVA ("INFORME A DISTANCA ENTRE A SUA CASA E DE SEU COLEGA: ", Nome4,":”) //Solicita ao usuário a distância entre sua casa e de seu primeiro amigo Distancia4
LEIA (Distancia4) //Lê a distância informada pelo usuário e guarda na variável Distancia4
Media <- (Distancia1 + Distancia2 + Distancia3 + Distancia4) / 4// Guarda o resultado das somas das distâncias dividido pelo número de distancias informadas na variável media.
Escreva ("Distância média entre as casas dos amigos e sua casa é de:", Media) //Escreve na tela a média das distancias informadas pelo usuário.
fimalgoritmo//Fim do bloco de instruções
Representação em módulos:
Código fonte:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
char Nome1, Nome2, Nome3, Nome4;
float Distancia1, Distancia2, Distancia3, Distancia4, Media;
printf("Informe o nome do seu amigo : ");
scanf("%s", &Nome1);
printf("Informe a distancia entre sua casa e de seu amigo : ");
scanf ("%f", &Distancia1);
printf("Informe o nome do seu amigo : ");
scanf("%s", &Nome2);
printf("Informe a distancia entre sua casa e de seu amigo : ");
scanf ("%f", &Distancia2);
printf("Informe o nome do seu amigo : ");
scanf ("%s", &Nome3);
printf("Informe a distancia entre sua casa e de seu amigo : ");
scanf ("%f", &Distancia3);
printf("Informe o nome do seu amigo : ");
scanf ("%s", &Nome4);
printf("informe a distancia entre sua casa e de seu amigo : ");
scanf ("%f", &Distancia4);
Media = (Distancia1 + Distancia2 + Distancia3 + Distancia4)/4;
printf("Distancia media entre as casas dos amigos e sua casa e de : ""%.1f metros \n\n\n\n\n", Media);
system("pause");
return 0;
}
Exemplo de saida
Print 1 – exemplo de saída da média de distância em metros
Converter números em quantidade de leds
Link para o código fonte.cpp leds.cpp
Link para o aplicativo.exe. leds.exe
Algoritmo "Montar número com leds"
Função: Identificar quantidade de casos e números fornecidos pelo usuário
e retornar a quantidade de leds necessários para construção digital dos números.
Autor: Thiago Alcântara Pena
Data: 29/09/2013
Trabalho: ATPS Faculdade Anhanguera etapa 2 segundo semestre 2013
Representação em pseudolinguagem:
var
// DECLARAÇÃO DE VARIAVEIS INTEIRAS
i, N, numero, a, b, q, led, total : inteiro
// PROCEDIMENTO PARA CONVERTER NUMEROS EM QUANTIDADE DE LEDS
procedimento conversao
inicio
// FUNÇÃO ( COMPR ) RETORNA A DIMENSÃO DO CARACTER
q <- (compr(numpcarac(numero)))
total <- 0
para a de 1 ate q faca
// FUNÇÃO ( CARACPNUM ) CONVERTENDO CARACTER PARA VALOR NUMERICO
b <- caracpnum((copia(numpcarac(numero), a, 1)))
// INICIO OPERADOR CONCICIONAL ENQUANTO
escolha b
caso 1
led <- 2
caso 2
led <- 5
caso 3
led <- 5
caso 4
led <- 4
caso 5
led <- 5
caso 6
led <-
caso 7
led <- 4
caso 8
led <- 7
caso 9
led <- 6
caso 0
led <- 6
// FINALIZANDO OPERADOR CONDICIONAL ENQUANTO
Fimescolha
// SOMANDO VALOR DE LEDS
total <- (total + led)
fimpara
// FINAL PROCEDIMENTO
fimprocedimento
inicio
// Seção de Comandos
// COLOCANDO VALOR INICIAL PARA I
i <- 1
// SOLICITAÇÃO NUMERO DE ENTRADAS
escreval("INFORME O NUMERO DE TESTES QUE DESEJA EFETUAR:")
// ENTRADA DO NUMERO DE TESTES
leia(N)
// LIMITANDO ENTRADA ENTRE
//INICIO DESVIO CONDICIONAL SE
se (N >= i) OU (N <= 2000) entao (1>= N <= 2000
// INICIO CONDIÇÃO ENQUANTO
enquanto (i <= N) faca
// SOLICITAÇÃO ENTRADA DE VALORES PARA CONVERSÃO
escreval("INFORME O NUMERO QUE DESEJA A INFORMAÇÃO DA QUANTIDADE EM LEDS:")
// ENTRADA DOS VALORES A SER CONVERTIDO
leia(numero)
// CHAMANDO PROCEDIMENTO
Conversao
// SAIDA VALORES CONVERTIDOS
escreval("TOTAL DE ",total," LEDS ")
// IMPLEMENTANDO +1 AO VALOR DE I
i <- (i + 1)
fimenquanto
senao
escreval("Quantidade informada inválida. A quantidade deve ser entre 1 e 2000")
// FIM DESVIO CONDICIONAL SE
Fimse
Fimalgoritm
Representação em módulos:
Código fonte:
/*CODIGO FONTE "Montar número com leds"
Função: Identificar quantidade de casos e números fornecidos pelo usuário
e retornar a quantidade de leds necessários para construção digital dos números.
Autor: Reginaldo Batista de Souza
Data: 29/09/2013
Trabalho: ATPS Faculdade Anhanguera etapa 2 segundo semestre 2013*/
Print 1 - Montar número com leds.
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
int main(){
//DECLARAÇÃO DE VARIÁVEIS
int i,aux,caso,x,numero,resultado;
char y[5];
//USÚARIO É SOLICITADO A INSERIR A QUANTIDADE DE TESTE DESEJADA
printf("\t\t\tNUMERO DE CASOS PARA TESTES: ") ;
scanf("%d",&caso);
/*SE CASO DE TESTE FOR MENOR QUE 1 OU MAIOR QUE 2000 O USÚARIO RECEBE UMA NOTIFICAÇÃO E O SISTEMA É ENCERRADO*/
if (caso < 1 || caso >= 2000){
printf("\nQuantidade informada invalida. A quantidade deve ser entre 1 e 2000\n");
return 0;
}
/* O FOR AVALIA O NUMERO DE CASOS E ENQUANTO O CONTADOR i FOR MENOR QUE caso ELE EXECUTA O COMANDO SEGUINTE*/
for (i=0; caso>= i; i++){
//RECEBE O NUMERO PARA AVALIAÇÃO DA QUANTIDADE DE LEDS
printf("\nInforme o n\xA3mero para obter a quantidade de leds necess\xA0rios:");
//ATRIBUI OS DADOS FORNECIDO PELO USÚARIO À VARIÁVEL numero.
scanf("%d",&numero);
// sprinf PEGA O NUMERO int UM A UM E CONVERTE EM char
sprintf(y,"%d",numero);
/*i RECEBE A QUANTIDADE DE CARACTERES ATRAVEZ DE strlen, FOR DISTRIBUI sprintf EM Y NA POSIÇÃO DE i */
for(i=0;i<strlen(y);++i){
/*switch case RECEBE y NA POSIÇÃO DE i E AVALIA SEU CONTEUDO, E ATRIBUI A VARIAVEL x DO TIPO int O VALOR REFERENTE AO DETERMINADO PARA CADA CONTEÚDO QUE POSSA ESTA EM Y */
switch(y[i])
{
case '0':
x=6;
break;
case '1':
x=2;
break;
case '2':
x=5;
break;
case '3':
x=5;
break;
case '4':
x=4;
break;
case '5':
x=5;
break;
case '6':
x=6;
break;
case '7':
x=3;
break;
case '8':
x=7;
break;
case '9':
x=6;
break;
}
//resultado DO TIPO int SOMA CADA OCORRENCIA DE y[i]
resultado=resultado+x;
}
// printf RETORNA AO USÚARIO A QUANTIDADE DE LEDS NECESSÁRIOS
printf("%d Leds ",resultado);
/*resultado RETORNA A '0' CASO NÃO OUVESSE ESSA DECLARAÇÃO resultado
SOMARIA SUCESSIVAMENTE ACUMULANDO RESULTADOS APÓS RESULTADOS*/
resultado=0;
getch();
}
return 0; }
O Problema de Josephus
Link para o código fonte.cpp permutação de joseph.cpp
Link para o aplicativo.exe. permutação de joseph.exe
Algoritmo: "O Problema de Josephus"
Função: Calcular a sequência de pessoas a sair da roda
Autor: Reginaldo Batista de Souza
Data: 08/09/2013
Trabalho ATPS Faculdade Anhanguera etapa 4 segundo semestre 2013*/
Representação em pseudolinguagem:
var
i, pessoas, passos, casos, sobra: inteiro
inicio
escreval("O Problema de Josephus ")
escreval("Informe a quantidade de casos a serem avaliados")
leia(casos)
i<-1
para i de 1 ate casos faca
escreval("Digite o numero de pessoas no círculo:")
leia(pessoas)
escreval("Digite o intervalo de passos entre duas pessoas: ")
leia(passos)
sobra<-passos*pessoas;
enquanto sobra > pessoas faca
sobra<-((passos*(passos-pessoas))-1)/(passos-1)
fimenquanto
escreval("caso",i,":",sobra)
i<-i+1
fimpara
fimalgoritmo
Representação em módulos:
Código fonte: Print 1 – permutação de Josephus.
#include <stdio.h>
#include <stdlib.h>
main(){
// DECLARANDO VARIÁVEIS
int j[4],i; //TITULO
printf("\nO Problema de Josephus \n\n");
// Pede ao usuario que digite a quantidade de casos que gostaria de avaliar
printf("Informe a quantidade de casos a serem avaliados\n ");
//Lê a quantidade de casos a ser avaliado e grarda na variável
scanf("%d",&j[0]);
// CONTADOR DO NUMERO DE CASOS
for(i=1; i<=j[0];i++){
//Pede ao usuario que digite o numero de pessoas
printf("Digite o numero de pessoas no c\xA1rculo: ");
//guarda o numero de pessoas na variável
scanf("%d",&j[1]);
//pede ao usuario o intervalo de passos entre duas pessoas
printf("Digite o intervalo de passos entre duas pessoas: ");
//guarda o intervalo na variável
scanf("%d",&j[2]);
//variávél j[3] recebe o numero de passos veses o numero de pessoas
j[3]=j[2]*j[1];
//WHILE DECOMPOE j[3] ATÉ j[3] SER MENOR QUE PESSOAS NO CÍRCULO
//escolhe j[3] menor que o número de pessoas
while (j[3]>j[1])
/*sistema de decomposição j[3] recebe (qtd. passos *(j[3] - total de pessoas
no círculo )-1 pessoa)/(qtd. passos -1 passo)*/
j[3]=(j[2]*(j[3]-j[1])-1)/(j[2]-1);
//imprime o resultado final
printf("\ncaso%d:%d\n\n",i,j[3]);
system ("PAUSE>>NULL");
}
...