Módulo I - Lógica e Algoritimos

BOM ESTAVA APAGANDO ESTE CONTEUDO PARA COMEÇAR A POSTAR A DO NOVO MODULO MAIS RESOLVI CRIAR ESTA PAGINA PARA SERVIR DE REFERENTE PRA QUEM ESTA PASSANDO PELO O QUE EU PASSEI. NÃO ESPERE MUITA COISA APENAS COPIEI E COLEI O HTML POREM ESTA BEM COMPLETO VOU TENTAR MANTER OS LINKS DIRETOS DE  DOWNLOAD DOS ARQUIVOS DO VISUAL ATIVOS! E É ISTO AE QUALQUER PROBLEMA BASTA COMENTAR QUE EU VO CORRIGINDO AS FALHARS
ABRAÇOS E BOMS ESTUDOS!



Aula 24, 25 e 26 - PÓS FERIAS!

BOM BASICAMENTE DEPOIS DAS FÉRIAS APENAS CORRIGIMOS OS EXERCICIOS DAS AULAS 23 E 24 ENTAO JUNTEI TUDO EM UMA UNICA POSTAGEM! ESTOU ANSIOSO NÃO PELA PROVA MAIS SIM PELO JAVA SEDE DE CONHECIMENTO É ALGO, ACHO QUE ESTOU PRONTO PARA A TÃO FALADA PROVA TRISTE NA REALIDADE SÃO OS COLEGAS QUE DEIXAREMOS POIS ESTA CLARO QUE APENAS UMA PEQUENA MINORIA CHEGARA LÁ! BOM PARABENS AO QUE CONSEGUIREM!  PROVA MARCADO DIA 23! ENTAO BONS ESTUDOS A TODOS!






01. Leia um conjunto com n números e informe se existe algum elemento repetido
no conjunto.

var
  VALOR: VETOR [1..8] DE INTEIRO
  X,Y:INTEIRO
  TESTE:LOGICO
Inicio
   TESTE<-FALSO
   PARA X DE 1 ATE 8 FACA
     ESCREVAL("DIGITE O VALOR",X)
     LEIA(VALOR[X])
   FIMPARA
   PARA X DE 1 ATE 8 FACA
      PARA Y DE X+1 ATE 8 FACA
      SE VALOR[X]=VALOR[Y] ENTAO
         TESTE<-VERDADEIRO
      FIMSE
   FIMPARA
  FIMPARA
  LIMPATELA
  SE TESTE=VERDADEIRO ENTAO
   ESCREVAL("EXISTEM NUMERO REPETIDOS")
  SENAO
    ESCREVAL("NÃO EXISTEM NUMERO REPETIDOS")
FIMSE

NESSA PRIMEIRA QUESTAO JOSANDRO ME CORRIGIU DIZENDO QUE EU TINHA
QUE TER COLOCADO A OPÇÃO DO USUARIO DIZER QUANTOS NUMERO QUERIA USAR
JA ESTOU TRABALHANDO NISSO! E ASSIM QUE TERMINAR POSTO AKI



02. Leia uma matriz quadrada de ordem 10 e calcule a sua transposta. Imprima as
duas matrizes.

var
 MATRIZ_A: VETOR [1..10,1..10] DE INTEIRO
 MATRIZ_B:VETOR [1..10,1..10] DE INTEIRO
 LINHA,COLUNA:INTEIRO
inicio
  PARA LINHA DE 1 ATE 10 FACA
    PARA COLUNA DE 1 ATE 10 FACA
      ESCREVAL("DIGITE O VALOR      ",LINHA," = ",COLUNA)
      LEIA(MATRIZ_A[LINHA,COLUNA])
    FIMPARA
    LIMPATELA
  FIMPARA
  PARA LINHA DE 1 ATE 10 FACA
    PARA COLUNA DE 1 ATE 10 FACA
      MATRIZ_B[COLUNA,LINHA]<-MATRIZ_A[LINHA,COLUNA]
    FIMPARA
  FIMPARA
  ESCREVAL(" MATRIZ A")
  PARA LINHA DE 1 ATE 10 FACA
    PARA COLUNA DE 1 ATE 10 FACA
      ESCREVA("",MATRIZ_A[LINHA,COLUNA])
    FIMPARA
    ESCREVAL("")
  FIMPARA
  ESCREVAL("")
  ESCREVAL(" MATRIZ B")
  PARA LINHA DE 1 ATE 10 FACA
    PARA COLUNA DE 1 ATE 10 FACA
      ESCREVA("",MATRIZ_B[LINHA,COLUNA])
    FIMPARA
    ESCREVAL("")
  FIMPARA
fimalgoritmo



03.Ler uma matriz 6 x 6 e atribuir o valor 0 para os valores negativos
encontrados fora das diagonais principal e secundaria

var
 TABELA: VETOR [1..6,1..6] DE INTEIRO
 LINHA,COLUNA:INTEIRO
inicio
  PARA LINHA DE 1 ATE 6 FACA
     PARA COLUNA DE 1 ATE 6 FACA
       ESCREVAL("DIGITE O VALOR",LINHA," = ",COLUNA)
       LEIA(TABELA[LINHA,COLUNA])
       SE TABELA[LINHA,COLUNA]<0 ENTAO
         SE (LINHA/COLUNA)= 1 ENTAO
            ESCREVAL("VALOR ESTA SOB DIAGONAL PRINCIPAL PORTANTO SERA MANTIDO")
         SENAO
           SE LINHA+COLUNA=7 ENTAO
             ESCREVAL("VALOR ESTA SOB DIAGONAL SECUNDARIA PORTANDO SERA MANTIDO")
           SENAO
              TABELA[LINHA,COLUNA]<-0
           FIMSE
         FIMSE
       FIMSE
     FIMPARA
  FIMPARA
fimalgoritmo




04 Leia matriz A de 8x8, depois preencha uma matriz B de mesma ordem,
trocando as linhas da matriz A pelas colunas da matriz B. Exemplo:
1ª linha da matriz A, será a 1ª coluna da matriz B
2ª linha da matriz A, será a 2ª coluna da matriz B
e assim por diante. Escreva a matriz resultante.

var
  TABELA:  VETOR [1..8,1..8] DE REAL
  TABELA2: VETOR[1..8,1..8] DE REAL
  LINHA,COLUNA:INTEIRO
inicio
   PARA LINHA DE 1 ATE 8 FACA
      PARA COLUNA DE 1 ATE 8 FACA
        ESCREVAL("DIGITE O VALOR                  LINHA = ",LINHA," COLUNA = ",COLUNA)
        LEIA(TABELA[LINHA,COLUNA])
      FIMPARA
      LIMPATELA
  FIMPARA
   PARA LINHA DE 1 ATE 8 FACA
     PARA COLUNA DE 1 ATE 8 FACA
       TABELA2[COLUNA,LINHA]<-TABELA[LINHA,COLUNA]
     FIMPARA
   FIMPARA
   PARA LINHA DE 1 ATE 8 FACA
     PARA COLUNA DE 1 ATE 8 FACA
        ESCREVAL("LINHA =",LINHA," COLUNA = ",COLUNA," == ",TABELA2[LINHA,COLUNA])
     FIMPARA
   FIMPARA
FIM






Aula 23 - 08/07/2011 - EXERCICIOS DE FÉRIAS!

01.Crie um programa que preencha uma primeira matriz de ordem
4x5 e uma segunda matriz 5x2. O programa deverá, 
também, calcular e mostrar a matriz resultante do produto 
matricial das duas matrizes anteriores, armazenando-o 
em uma terceira matriz de ordem 4x2. 
 
var
 MATRIZ_A: VETOR [1..4,1..5] DE INTEIRO
 MATRIZ_B: VETOR [1..5,1..2] DE INTEIRO
 MATRIZ_C: VETOR [1..4,1..2] DE INTEIRO
 COLUNA,LINHA,N,SOMA:INTEIRO
inicio
  ESCREVAL("VALORES DA PRIMEIRA MATRIZ 4X5")
  ESCREVAL("")
  PARA LINHA DE 1 ATE 4 FACA
    PARA COLUNA DE 1 ATE 5 FACA
       ESCREVAL("DIGITE OS VALOR",LINHA," = ",COLUNA)
       LEIA(MATRIZ_A[LINHA,COLUNA])
    FIMPARA
    LIMPATELA
  FIMPARA
  ESCREVAL("VALORES DA SEGUNDA MATRIZ 5X2")
  PARA LINHA DE 1 ATE 5 FACA
    PARA COLUNA DE 1 ATE 2 FACA
      ESCREVAL("DIGITE OS VALOR",LINHA," = ",COLUNA)
      LEIA(MATRIZ_B[LINHA,COLUNA])
    FIMPARA
    LIMPATELA
  FIMPARA
  PARA LINHA DE 1 ATE 4 FACA
    PARA COLUNA DE 1 ATE 2 FACA
    SOMA<-0
    PARA N DE 1 ATE 5 FACA
      SOMA<- SOMA + ((MATRIZ_A[LINHA,N]) * (MATRIZ_B[N,COLUNA]))
    FIMPARA
    MATRIZ_C[LINHA,COLUNA]<-SOMA
   FIMPARA
  FIMPARA
  ESCREVAL("PRODUTO MATRICIAL")
  ESCREVAL("")
  PARA LINHA DE 1 ATE 4 FACA
    PARA COLUNA DE 1 ATE 2 FACA
       ESCREVA("",MATRIZ_C[LINHA,COLUNA])
    FIMPARA
    ESCREVAL("")
  FIMPARA
fimalgoritmo
 
DOWNLOAD 
 
 
02.Um elemento Aij de uma matriz é dito ponto de sela da matriz 
A se, e somente se ,Aij for ao mesmo tempo o menor elemento 
da linha i e o maior elemento da coluna j.
Faça um programa que carregue uma matriz de ordem 5x7, 
verefique se a matriz possui ponto de sela e , 
se possuir, mostre seu valor e sua localizaçao. 
 
var
MATRIZ: VETOR [1..5,1..7] DE INTEIRO
L,C,L2,X:INTEIRO
MENOR,MAIOR,CR,LR:REAL
TESTE:LOGICO
inicio
CR<-0
X<-0
TESTE<-VERDADEIRO
PARA L DE 1 ATE 5 FACA
   PARA C DE 1 ATE 7 FACA
      ESCREVAL("DIGITE O VALOR ",L," = ",C)
      LEIA(MATRIZ[L,C])
   FIMPARA
   LIMPATELA
FIMPARA
PARA L DE 1 ATE 5 FACA
   MENOR<-MATRIZ[L,1]
   X<-1
   PARA C DE 1 ATE 7 FACA
      SE MENOR>MATRIZ[L,C] ENTAO
         MENOR<-MATRIZ[L,C]
         X<-C
      FIMSE
   FIMPARA
   MAIOR <- MATRIZ[L,X]
   PARA L2 DE 1 ATE 5 FACA
      SE MAIOR<MATRIZ[L2,X] ENTAO
         MAIOR<-MATRIZ[L2,X]
         LR<-L2
      FIMSE
   FIMPARA
   SE ((LR=L) E (MENOR=MAIOR)) ENTAO
      TESTE<-FALSO
      ESCREVAL("ESTA MATRIZ POSSUI UM PONTO DE SELA")
      ESCREVAL("O VALOR É ",MAIOR," SUA POSIÇÃO É LINHA ",LR," COLUNA ",X)
   FIMSE
FIMPARA
SE TESTE ENTAO
   ESCREVAL("NÃO EXISTE UM PONTO DE SELA NESTA MATRIZ!")
FIMSE
fimalgoritmo
 
 
03.Elabore um programa que preencha uma matriz de 6x4 com 
números inteiros, cacule e mostre quantos elementos dessa
matriz são maiores que 30 e, em seguida, monte uma segunda
matriz com os elementos diferentes de 30. 
No lugar do número 30 da segunda matriz, coloque o número zero. 
 
var
 MATRIZ_A: VETOR [1..6,1..4] DE INTEIRO
 MATRIZ_B: VETOR [1..6,1..4] DE INTEIRO
 CONT:REAL
 LINHA,COLUNA:INTEIRO
inicio
  PARA LINHA DE 1 ATE 6 FACA
    PARA COLUNA DE 1 ATE 4 FACA
       ESCREVAL("DIGITE O VALOR  ",LINHA," = ",COLUNA)
       LEIA(MATRIZ_A[LINHA,COLUNA])
    FIMPARA
    LIMPATELA
  FIMPARA
  PARA LINHA DE 1 ATE 6 FACA
    PARA COLUNA DE 1 ATE 4 FACA
      SE MATRIZ_A[LINHA,COLUNA]>30 ENTAO
        CONT<-CONT+1
        MATRIZ_B[LINHA,COLUNA]<- 0
      SENAO
        MATRIZ_B[LINHA,COLUNA]<-MATRIZ_A[LINHA,COLUNA]
      FIMSE
    FIMPARA
  FIMPARA
  ESCREVAL(" MATRIZ ORIGINAL")
  ESCREVAL("")
  PARA LINHA DE 1 ATE 6 FACA
    PARA COLUNA DE 1 ATE 4 FACA
      ESCREVA("  ",MATRIZ_A[LINHA,COLUNA])
    FIMPARA
    ESCREVAL("  ")
  FIMPARA
  ESCREVAL("")
  ESCREVAL("MATRIZ RESULTANTE")
  PARA LINHA DE 1 ATE 6 FACA
    PARA COLUNA DE 1 ATE 4 FACA
      ESCREVA("  ",MATRIZ_B[LINHA,COLUNA])
    FIMPARA
    ESCREVAL("  ")
  FIMPARA
fimalgoritmo
 
 
04.Crie um programa que preencha uma matriz 15 x 5 com números
inteiros, calcule e mostre quais elementos da matriz se
repetem e quantas veses cada um se repete. 
 
 
 QUESTAO MEIO QUE ABONADA POIS NINGGUEM CONSEGIU FAZER!
PELO MENOS ATE O MOMENTO! JA TO TRABALHANDO
 NISSO E ASSIM QUE CONSEGUI POSTO AKI! 
 
05.Elabore um programa que preencha uma matriz 10 x 10 com números
inteiros, execute as trocas especificadas a seguir e mostre a matriz resultante:

- A linha 2 com a linha 8;
- A coluna 4 com a coluna 10;
- A diagonal principal com a diagonal secundária;
- A linha 5 com a coluna 10.
 
var
   matr:vetor[1..10,1..10] de real
   matr2:vetor[1..10,1..10] de real
   l,c,c2:inteiro
inicio
      PARA l de 1 ate 10 FACA
           PARA c de 1 ate 10 FACA
                escreval("Digite o número referente a linha",l," e coluna",c,":")
                leia(matr[l,c])
                matr2[l,c] <- matr[l,c]
           FIMPARA
      FIMPARA
      c2<-10
      PARA l de 1 ate 10 FACA
           matr2[2,l] <- matr[8,l]
           matr2[8,l] <- matr[2,l]
           matr2[l,4] <- matr[l,10]
           matr2[l,10] <- matr[l,4]
           matr2[l,l] <- matr[l,c2]
           matr2[l,c2] <- matr[l,l]
           c2 <- c2-1
           matr2[5,l] <- matr[l,10]
           matr2[l,10] <- matr[5,l]
      FIMPARA
      escreval("  Matriz Final ")
      PARA l de 1 ate 10 FACA
           escreval("| ",matr2[l,1]," | ",matr2[l,2]," | ",matr2[l,3]," | ",matr2[l,4]," | ",matr2[l,5]," | ",matr2[l,6]," | ",matr2[l,7]," | ",matr2[l,8]," | ",matr2[l,9]," | ",matr2[l,10]," | ")
      FIMPARA
fimalgoritmo
 
DOWNLOAD




Aula 22 - 06/07/2011 - MAIS EXERCICIOS MATRIZES

BOM! COMO SEMPRE O QUE COMPLICA É A LÓGICA E NÃO A TEORIA EM CI..
NÃO TIVE DIFICULDADES EM REALIZAR A 1 E A 2 POREM A 3 COMPLICA POR TER UM ENUNCIADO MAIS COMPLICADO MAIS DEPOIS DE BEM ESTUDADO FICA FACIL!





1)  Faça um algoritmo que preencha uma matriz M (2x2), calcule e mostre a matriz R, resultante da multiplicação dos elementos de M pelo seu maior elemento.

var
 M,R : VETOR [1..2,1..2] de real
 N,X:INTEIRO
 MAIOR:REAL
inicio
  PARA N DE 1 ATE 2 FACA
     PARA X DE 1 ATE 2 FACA
       ESCREVAL("DIGITE O",X," VALOR DA LINHA N",N)
       LEIA(M[N,X])
     FIMPARA
     LIMPATELA
  FIMPARA
  MAIOR<- M[1,1]
  PARA N DE 1 ATE 2 FACA
    PARA X DE 1 ATE 2 FACA
      SE MAIOR<M[N,X] ENTAO
        MAIOR<-M[N,X]
      FIMSE
    FIMPARA
  FIMPARA
  PARA N DE 1 ATE 2 FACA
    PARA X DE 1 ATE 2 FACA
      R[N,X]<-M[N,X]*MAIOR
    FIMPARA
  FIMPARA
  LIMPATELA
   PARA N DE 1 ATE 2 FACA
     PARA X DE 1 ATE 2 FACA
       ESCREVAL(R[N,X])
     FIMPARA
   FIMPARA
fimalgoritmo



2) Faça um programa que preencha:
  • Um vetor com oito posições, contendo nomes de lojas;
  • Outro vetor com quatro posições, contendo nomes de produtos;
  • Uma matriz com os preços de todos os produtos em cada loja.
O programa deverá mostrar todas as relações (nome do produto – nome da loja) em que o preço não ultrapasse R$ 120,00.

var
  LOJA: VETOR [1..8] DE CARACTER
  PRODUTO: VETOR [1..4]DE CARACTER
  TABELA:VETOR [1..4,1..8] DE REAL
  N,L,C:INTEIRO
inicio
  PARA N DE 1 ATE 8 FACA
    ESCREVAL("DIGITE NOME DA LOJA",N)
    LEIA(LOJA[N])
  FIMPARA
  LIMPATELA
  PARA N DE 1 ATE 4 FACA
    ESCREVAL("DIGITE NOME PRODUTO",N)
    LEIA(PRODUTO[N])
  FIMPARA
  LIMPATELA
  PARA L DE 1 ATE 8 FACA
    LIMPATELA
    PARA C DE 1 ATE 4 FACA
      ESCREVAL("DIGITE O PREÇO DO(A) ",PRODUTO[C]," NA LOJA ",LOJA[L])
      LEIA(TABELA[C,L])
    FIMPARA
  FIMPARA
  LIMPATELA
  PARA L DE 1 ATE 8 FACA
    PARA C DE 1 ATE 4 FACA
     SE TABELA[C,L]<120 ENTAO
        ESCREVAL("O PRODUTO ",PRODUTO[C]," NA LOJA",LOJA[L]," CUSTA ",TABELA[C,L])
     FIMSE
    FIMPARA
  FIMPARA
fimalgoritmo


3) Na teoria dos sistemas, define-se o elemento MINMAX de uma matriz como o maior elemento da linha em que se econtra o menor elemento da matriz. Elabore um programa que carregue uma matriz 4x7 com números reais, calcule e mostre seu MINMAX e sua posição (linha e coluna).




var
  MATRIZ: VETOR [1..4,1..7] DE INTEIRO
  C,L,C2,L2:INTEIRO
  MENOR,MAIOR,LM,CM:REAL
  TESTE:LOGICO
inicio
  LM<-0
  CM<-0
  TESTE<-VERDADEIRO
  PARA L DE 1 ATE 4 FACA
     PARA C DE 1 ATE 7 FACA
        ESCREVAL("DIGITE O VALOR",L," = ",C)
        LEIA(MATRIZ[L,C])
     FIMPARA
     LIMPATELA
  FIMPARA
  PARA L DE 1 ATE 4 FACA
    MENOR<-MATRIZ[1,1]
    PARA C DE 1 ATE 7 FACA
      SE MENOR>MATRIZ[L,C] ENTAO
          MENOR<-MATRIZ[L,C]
          LM<-L
      FIMSE
    FIMPARA
  FIMPARA
  MAIOR<-MATRIZ[LM,1]
  PARA C DE 1 ATE 7 FACA
     SE MAIOR < MATRIZ[LM,C] ENTAO
         MAIOR<-MATRIZ[LM,C]
         CM<-C
         TESTE<-FALSO
      FIMSE
  FIMPARA
  SE TESTE ENTAO
    ESCREVAL("NÃO EXISTE VALOR MINMAX NESTA MATRIZ")
  SENAO
     ESCREVAL("O VALOR MINMAX É",MAIOR)
     ESCREVAL("SUA POSIÇÃO É LINHA",LM,"COLUNA ",CM)
  FIMSE
fimalgoritmo








Aula 21 - 04/07/2011 - EXERCICIOS MATRIZES

APOS O CONTEUDO PASSADO VAMOS AO EXERCICIOS! NÃO TIVE GRANDES DIFICULDADES PARA RESOLVER AS QUESTOES ABAIXO ESPERO QUE ISSO CONTINUE! A TENDENCIA É PIORAR! ENTAO QUANDO MAIS EXERCICIOS FOREM PASSADOS MELHOR! MAOS A OBRA!



ABAIXO EXERCICIOS PASSADOS!





1) Faça um programa que preencha dois vetores de cinco elementos numéricos cada um e mostre o vetor resultante da multiplicação dos valores destes vetores.
Vetor 1:
35422
12345

Vetor 2:
71520018
12345

Vetor resultante da multiplicação:
217580036
12345


var
 VALOR1: VETOR [1..5] DE REAL
 VALOR2:VETOR [1..5] DE REAL
 RESP:VETOR [1..5] DE REAL
 X:INTEIRO
inicio
  ESCREVAL("VAMOS DIGITAR A PRIMEIRA RELAÇÃO DE 5 VALORES")
  PARA X DE 1 ATE 5 FACA
    ESCREVAL("DIGITE O",X," POSIÇÃO DA PRIMEIRA RELAÇÃO")
    LEIA(VALOR1[X])
  FIMPARA
  LIMPATELA
  ESCREVAL("AGORA A SEGUNDA RELAÇÃO DE 5 VALORES")
  PARA X DE 1 ATE 5 FACA
     ESCREVAL("DIGITE O",X," POSIÇÃO DA SEGUNDA RELAÇÃO")
     LEIA(VALOR2[X])
  FIMPARA
  LIMPATELA
  PARA X DE 1 ATE 5 FACA
    RESP[X]<-((VALOR1[X])*(VALOR2[X]))
    ESCREVAL(VALOR1[X]," X",VALOR2[X]," =",RESP[X])
  FIMPARA
fimalgoritmo



2) Uma pequena loja de artesanato possui apenas um vendedor e comercializa dez tipos de objetos. O vendedor recebe, mensalmente, salário de R$ 400,00, acrescido de 5% do valor total de suas vendas. O valor unitário dos objetos deve ser informado e armazenado em uma matriz; a quantidade vendida de cada peça deve ficar na mesma matriz, em outra coluna.
Crie um programa que receba os preços e as quantidades vendidas e armazenando-os na matriz. Depois determine e mostre:
  • um relatório contendo quantidade vendida, valor unitário e valor total de cada objeto. Ao final deverá ser mostrado um valor geral das vendas e o valor da comissão que será paga ao vendedor
  • o valor do objeto mais vendido e sua posição na matriz (mostre linha e coluna. Não se preocupe com empates).


var
  OBJETO: VETOR [1..10,1..2] DE REAL
  MULT,POSICAO,MAIOR_QUANT:REAL
  TESTE:LOGICO
  N:INTEIRO
inicio
  TESTE<-FALSO
  PARA N DE 1 ATE 10 FACA
     LIMPATELA
     ESCREVAL("DIGITE O PREÇO UNITARIO           ",N)
     LEIA(OBJETO[N,1])
     ESCREVAL("DIGITE QUANTIDADE VENDIDA         ",N)
     LEIA(OBJETO[N,2])
  FIMPARA
  LIMPATELA
  PARA N DE 1 ATE 10 FACA
    MULT<- OBJETO[N,1]*OBJETO[N,2]
    ESCREVAL("O PREÇO UNITARIO DO PRODUTO É",OBJETO[N,1])
    ESCREVAL("A QUANTIA VENDIDA FOI",[N,2])
    ESCREVAL("O VALOR TOTAL DO PRODUTO",MULT)
  FIMPARA
  MAIOR_QUANT<-(OBJETO[1,2])
  PARA N DE 2 ATE 10 FACA
     SE MAIOR_QUANT< OBJETO[N,2] ENTAO
       MAIOR_QUANT<-OBJETO[N,2]
       POSICAO<-N
       TESTE<-VERDADEIRO
     FIMSE
  FIMPARA
  SE TESTE=VERDADEIRO ENTAO
    ESCREVAL("O MAIOR MAIOR PRODUTO VENDIDO FOI O",POSICAO," COM",MAIOR_QUANT)
    ESCREVAL("SEU VALOR UNITARIO É",OBJETO[POSICAO,1])
    ESCREVAL("SUA POSIÇÃO EXATA É LINHA",N," COLUNA ",N)
  SENAO
    ESCREVAL("O MAIOR MAIOR PRODUTO VENDIDO FOI O 1 COM",MAIOR_QUANT," UNIDADES")
    ESCREVAL("SUA POSIÇÃO EXATA É LINHA 2 COLUNA 1")
  FIMSE
fimalgoritmo

DOWNLOAD





3) Faça  um  programa  que  preencha  uma  matriz  10  x  3  com  as notas  de  dez  alunos  em  três  provas. O programa deverá mostrar  um  relatório  com  o  número  dos  alunos  (número  da linha) e a média do aluno nas 3 provas. Ao final do relatório, deverá mostrar a média geral de todos os alunos. 


var
 MATRIZ: VETOR [1..10,1..3] DE INTEIRO
 MEDIA: VETOR[1..10] DE REAL
 L,C:INTEIRO
 MEDIA_T,SOMA:REAL
inicio
   PARA L DE 1 ATE 10 FACA
     PARA C DE 1 ATE 3 FACA
        ESCREVAL("DIGITE A NOTA DO ALUNO",L," NA PROVA",C)
        LEIA(MATRIZ[L,C])
        SOMA<-(SOMA+MATRIZ[L,C])
     FIMPARA
     LIMPATELA
   FIMPARA
   PARA L DE 1 ATE 10 FACA
      MEDIA[L]<- (MATRIZ[L,1]+MATRIZ[L,2]+MATRIZ[L,3])/3
      ESCREVAL(" O ALUNO",L," TEVE MEDIA ",MEDIA[L])
   FIMPARA
   MEDIA_T<-(SOMA/10)/3
   ESCREVAL("A MEDIA DA TURMA É",MEDIA_T)
fimalgoritmo




4) Faça um programa que preencha uma matriz de 5 x 5 com números inteiros, calcule e mostre os números superiores a cinquenta e suas respectivas posições (linha e coluna). O programa deverá mostrar mensagem se não existir nenhum número nessa condição.
var
  MATRIZ: VETOR [1..5,1..5] DE INTEIRO
  L,C:INTEIRO
  TESTE:LOGICO
inicio
  TESTE<-FALSO
  PARA L DE 1 ATE 5 FACA
    PARA C DE 1 ATE 5 FACA
       ESCREVAL("DIGITE O VALOR")
       LEIA(MATRIZ[L,C])
       SE MATRIZ[L,C]>50 ENTAO
         ESCREVAL("O VALOR DIGITADO É MAIOR QUE 50 ")
         ESCREVAL("SUA LOCALIZAÇÃO É  LINHA ",L," COLUNA ",C)
         TESTE<-VERDADEIRO
       FIMSE
    FIMPARA
    LIMPATELA
  FIMPARA
  SE TESTE=FALSO ENTAO
    ESCREVAL("NENHUM NUMERO MAIOR QUE 50 FOI DIGITADO!")
  FIMSE




Aula 20 - 29.06.2011 - MATRIZES

ANTES DE MAIS NADA SIM, CHEGUEI ATRASADO. NÃO SEI COMO ACHEI QUE A AULA ERA NO LAB, ENFIM. HOJE TIVEMOS O PRIMEIRO CONTATO COM O MONSTRO "MATRIZ" NUNCA TINHA VISTO UMA TURMA TÃO APAVORADA; A EXPLICAÇÃO SE TORNA UM TANTO COMPLICADO JA QUE PENSAR EM DADOS EM TRÊS DIMENSÕES ASSUSTA QUALQUER UM. CONFESSO QUE NO COMEÇO TIVE GRANDE DIFICULDADE EM ENTENDER A LÓGICA BASICA. MAIS DEPOIS DE ALGUNS EXERCÍCIOS A COISA COMEÇOU A ANDAR. ABAIXO SEGUE O CONTEÚDO E OS EXERCÍCIOS. 







FAÇA UM PROGRAMA QUE PREENCHA UMA MATRIZ 10X3 COM AS NOTAS DE DEZ ALUNOS EM TRÊS PROVAS. O PROGRAMA DEVERA MOSTRAR UM RELÁTORIO COM NUMERO DOS ALUNOS(NUMERO DA LINHA) E A PROVA EM QUE CADA UM OBTEVE MENOR NOTA AO FINAL O RELATÓRIO, DEVERA MOSTRAR QUANTOS ALUNOS TIVERAM MENOR NOTA EM CADA UMA DAS PROVAS: NA PROVA 1, NA PROVA E NA PROVA 3.

VAR


NOTA: VETOR [1..10,1..3] DE REAL
PROVA,ALUNO,CONT1,CONT2,CONT3:INTEIRO


INICIO
  PARA ALUNO DE 1 ATE 10 FACA
     PARA PROVA DE 1 ATE 3 FACA
        ESCREVAL("DIGITE A NOTA DA PROVA",PROVA)
        LEIA(NOTA[ALUNO,PROVA])
     FIMPARA
  FIMPARA
  CONT1<-0
  CONT2<-0
  CONT3<-0
  PARA ALUNO DE 1 ATE 10 FACA
    SE ((NOTA[ALUNO,1])>(NOTA[ALUNO,2]))E ((NOTA[ALUNO,2])>(NOTA[ALUNO,3])) ENTAO
      CONT1<-CONT1+1
      ESCREVAL("A MENOR NOTA DO ALUNO",ALUNO,"FOI NA TERCEIRA PROVA") ENTAO
    SENAO
      SE ((NOTA[ALUNO,1])>(NOTA[ALUNO,2]))E((NOTA[ALUNO,3])>(NOTA[ALUNO,2])) ENTAO
        CONT2<-CONT2+1
        ESCREVAL("A MENOR NOTA DO ALUNO",ALUNO,"FOI NA SEGUNDA PROVA")
      SENAO
        SE ((NOTA[ALUNO,2])>(NOTA[ALUNO,1]))E ((NOTA[ALUNO,2])>(NOTA[ALUNO,1])) ENTAO
          CONT3<-CONT3+1
          ESCREVAL("A MENOR NOTA DO ALUNO",ALUNO,"FOI NA PRIMEIRA PROVA")
        SENAO
          SE ((NOTA[ALUNO,2])=(NOTA[ALUNO,1]))E ((NOTA[ALUNO,1])>(NOTA[ALUNO,3])) ENTAO
             ESCREVAL("O ALUNO",ALUNO," NÃO TEVE NENHUMA NOTA MENOR)
          FIMSE
        FIMSE
      FIMSE
    FIMSE
    ESCREVAL(CONT3," ALUNOS TIRARAM  A NOTA MAIS BAIXA NA PRIMEIRA PROVA")
    ESCREVAL(CONT2," ALUNOS TIRARAM  A NOTA MAIS BAIXA NA SEGUNDA PROVA")
    ESCREVAL(CONT1," ALUNOS TIRARAM  A NOTA MAIS BAIXA NA TERCEIRA PROVA")
FIM




FAÇA UM PROGRAMA QUE PREENCHA UMA MATRIZ DE 5X5 COM NUMEROS INTEIROS, CAUCULE E MOSTRE OS NUMEROS SUPERIORES A CINQUENTA E SUAS RESPECTIVAS POSIÇÕES(LINHA E COLUNA). O PROGRAMA DEVERÁ MOSTRAR MENSAGEM SE NÃO EXISTIR NENHUM NÚMERO NESSA CONDIÇÃO
VAR
VALOR:VETOR [1..5,1..5] DE INTEIRO
LINHA,COLUNA:INTEIRO
MAIOR:LOGICO




INICIO
  MAIOR<-FALSO
  PARA LINHA DE 1 ATE 5 FACA
    PARA COLUNA DE 1 ATE 5 FACA
      ESCREVAL("DIGITE UM VALOR")
      LEIA(VALOR[LINHA,COLUNA])
      SE (VALOR[LINHA,COLUNA])>50 ENTAO
        ESCREVAL("O VALOR DECLARADO É MAIOR QUE 50, SUA POSIÇÃO É LINHA",LINHA," COLUNA",COLUNA)
        MAIOR<-VERDADEIRO
      FIMSE
    FIMPARA
  FIMPARA
  SE MAIOR=FALSO ENTAO
    ESCREVAL("NENHUM VALOR DECLARADO É MAIOR DO QUE 50")
  FIMSE
FIM









Aula 19 - 22.06.2011 - VETORES

DURANTE A AULA DE HOJE AVANÇAMOS NO CONTEÚDO,FOI NOS PASSADO VETOR A PRIMEIRA VISTA É ALGO DE OUTRO MUNDO, MAIS ATÉ QUE NA PRATICA AS COISAS CORRERAM TRANQUILAMENTE. DEPOIS DESTA AULA PERCEBI QUE AS COISAS VÃO CADA VEZ AUMENTANDO MAIS O CONTEÚDO DE ONTEM É O ALFABETO DE AGORA. E ACREDITO QUE AS DIFICULDADES DO PASSADO SERÃO GRANDES PROBLEMAS NO FUTURO. PRÓXIMA AULA VIRA MATRIZES, ESTOU MUITO CURIOSO ATÉ PORQUE QUANDO MAIS FERRAMENTAS APRENDEMOS, MAIS NOSSOS ALGORITMOS FICAM COMPLETOS, E DÃO MENOS TRABALHO MESMO QUE EXIJAM MAIS RACIOCINO. A AULA CORREU COMO DE COSTUME CONTEÚDO DEPOIS EXERCÍCIOS OS MESMO SEGUEM ABAIXO.







01. FAÇA UM PROGRAMA QUE LEIA 10 NOMES DE ALUNOS E GUARDE EM UMA LISTA


VAR
  NOMES:VETOR[1..10] DE CARACTERE
  CONT:INTEIRO
INICIO
    PARA CONT DE 1 ATE 10 FACA
      ESCREVAL("DIGITE UM NOME")
      LEIA(NOMES[CONT])
    FIMPARA
    LIMPATELA
    PARA CONT DE 1 ATE 10 FACA
      ESCREVAL(NOMES[CONT])
    FIMPARA
FIM


02. FAÇA UM PROGRAMA QUE LEIA 10 NOMES DE ALUNOS E SUA MÉDIA FINAL E GUARDE EM LISTAS. AO FINAL, LISTAR O NOME DO ALUNO E SUA MÉDIA MOSTRANDO "APROVADO" SE A MÉDIA FOR MAIOR OU IGUAL A 7.0 OU "REPROVADO" CASO CONTRÁRIO.


VAR
  NOME:VETOR [1..10] DE CARACTER
  MEDIA:VETOR [1..10] DE REAL
  NOTA:VETOR[1..10] DE CARACTER
  CONT:INTEIRO


INICIO
  PARA CONT DE 1 ATE 10 FACA
    ESCREVAL("DIGITE O NOME")
    LEIA(NOME[CONT])
    ESCREVAL("DIGITE MÉDIA")
    LEIA(MEDIA[CONT])
    SE (MEDIA[CONT])>=7 ENTAO
       NOTA[CONT]<-"APROVADO"
    SENAO
      SE ((MEDIA[CONT])<7) E ((MEDIA[CONT])>0) ENTAO
        NOTA[CONT]<-"REPROVADO"
      SENAO
        NOTA(CONT)<-("MÉDIA INVALIDA")
      FIMSE
    FIMSE
  FIMPARA
  PARA CONT DE 1 ATE 10 FACA
    ESCREVAL("O ALUNO(A) ",NOME[CONT]," TIROU A MEDIA ",MEDIA[CONT]," E ESTÁ ",NOTA[CONT])
  FIMPARA
FIM




03.FAÇA UM PROGRAMA QUE LEIA 50 VALORES REIAS E GUARDE EM UM VETOR. AO FINAL, MOSTRAR A SOMA E A MÉDIA DOS VETORES LIDOS.


VAR
 VALOR:VETOR [1..50] DE REAL
 CONT:INTEIRO
 SOMA,MEDIA:REAL


INICIO
 PARA CONT DE 1 ATE 50 FACA
   ESCREVAL("DIGITE O VALOR")
   LEIA(VALOR[CONT])
   SOMA<-(SOMA+VALOR[CONT])
 FIMPARA
 MEDIA<-SOMA/50
 ESCREVAL("A SOMA DOS NUMEROS LIDOS É",SOMA)
 ESCREVAL("A MÉDIA DOS NUMEROS LIDOS É",MEDIA)
FIM

04.FAÇA UM PROGRAMA QUE CAUCULE A MEDIA ((NOTA 1 + NOTA2)/2) DE 10 ALUNOS E GUARDE EM UM VETOR. PERCORRA O VETOR E MOSTRE AS MÉDIAS. AO FINAL MORESTE A MÉDIA GERAL DA TURMA.




VAR
 NOTA1: VETOR [1..10] DE REAL
 NOTA2: VETOR [1..10] DE REAL
 MEDIA: VETOR [1..10] DE REAL
 MEDIA_TOTAL,MEDIA_GERAL:REAL
 CONT:INTEIRO
INICIO
 PARA CONT DE 1 ATE 10 FACA
   ESCREVAL("DIGITE PRIMEIRA NOTA")
   LEIA(NOTA1[CONT])
   ESCREVAL("DIGITE SEGUNDA NOTA")
   LEIA(NOTA2[CONT])
   MEDIA[CONT]<-((NOTA1[CONT])+NOTA2[CONT])/2)
 FIMPARA
 PARA CONT DE 1 ATE 10 FACA
   ESCREVAL(" A MEDIA DO ALUNO(A)",CONT," É",MEDIA[CONT])
   MEDIA_TOTAL<-MEDIA_GERAL+MEDIA[CONT]
 FIMPARA
 MEDIA_GERAL<-MEDIA_TOTAL/10
 ESCREVAL("A MEDIA GERAL DOS ALUNOS FOI",MEDIA_GERAL)
FIM


05. FAÇA UM PROGRAMA QUE MOSTRE O MÊS DO ANO DE ACORDO COM O NUMERO DE ( 1 A 12) INFORMADO PELO USUARIO.


VAR


MES:VETOR [1..12] DE CARACTER
VALOR:INTEIRO


INICIO
  MES[1]<-("JANEIRO")
  MES[2]<-("FEVEREIRO")
  MES[3]<-("MARÇO")
  MES[4]<-("ABRIL")
  MES[5]<-("MAIO")
  MES[6]<-("JUNHO")
  MES[7]<-("JULHO")
  MES[8]<-("AGOSTO")
  MES[9]<-("SETEMBRO")
  MES[10]<-("OUTUBRO")
  MES[11]<-("NOVEMBRO")
  MES[12]<-("DEZENBRO")
  ESCREVAL("DIGITE O VALOR")
  LEIA(VALOR)
  ESCREVAL("O VALOR DIGITADO CORRESPONDE AO MES DE ",MES[VALOR])
FIM






Aula 16 e 17 - 08.05.2011 e 15/06/2011 - TRABALHO

Na aula foi relizado um trabalho com 3 questões valendo 10 pontos  as mesmas foram corrigidas na aula 17 onde grupos apresentaram suas verções dos programas pra a sala explicando o raciocinio abaixo questoes

1) Em uma eleição presidencial existem quatro candidatos. Os votos são informados por meio de código. Os códigos utilizados são:
           
1, 2, 3, 4
Votos para os respectivos candidatos
5
Voto nulo
6
Voto em branco
           
     Faça um programa que calcule e mostre:
-        o total de votos para cada candidato;
-        o total de votos nulos;
-        o total de votos em branco;
-        a percentagem de votos nulos sobre o total de votos;
-        a percentagem de votos em branco sobre o total de votos.
           
            Para finalizar o conjunto de votos, tem-se o valor ZERO e, para códigos inválidos, o programa deverá mostrar uma mensagem.



var
   voto, cont, cont1, cont2, cont3, cont4, cont5,cont6: inteiro
   perc1, perc2: real
inicio
    cont  := 0
    cont1 := 0
    cont2 := 0
    cont3 := 0
    cont4 := 0
    cont5 := 0
    cont6 := 0
    escreval ("INFORME O SEU VOTO")
    escreval ("DIGITE (1) PARA VOTAR NO PRIMEIRO CANDITADO")
    escreval ("DIGITE (2) PARA VOTAR NO SEGUNDO CANDITADO")
    escreval ("DIGITE (3) PARA VOTAR NO TERCEIRO CANDITADO")
    escreval ("DIGITE (4) PARA VOTAR NO QUANRTO CANDITADO")
    repita
       leia (voto)
       cont := cont + 1
       Se (voto > 6) ou (voto < 0)entao
          escreval("ERRO, VOTO INVALIDO, VOTE NOVAMENTE!")
       fimse
          Se (voto = 1) entao
             cont1 := cont1 + 1
          senao
             Se (voto = 2) entao
                cont2 := cont2 + 1
             senao
                Se (voto = 3) entao
                   cont3 := cont3 + 1
                senao
                   Se (voto = 4) entao
                      cont4 := cont4 + 1
                   senao
                      Se (voto = 5) entao
                         cont5 := cont5 + 1
                      senao
                         Se (voto = 6) entao
                            cont6 := cont6 + 1
                         fimse
                      fimse
                   fimse
                fimse
             fimse
          fimse
    ate (voto = 0)
    cont := cont - 1
    perc1 := cont5 * 100 / cont
    perc2 := cont6 * 100 / cont
    Se (Cont5 = 0) entao
       escreval ("NÃO HOUVE VOTOS NULOS NESSA ELEIÇÃO")
    fimse
       Se (cont6 = 0) entao
          escreval ("NÃO HOUVE VOTOS EM BRANCO NESSA ELEIÇÃO")
       fimse
    escreval ("O TOTAL DE VOTOS PARA O 1º CANDITADO É = ", cont1)
    escreval ("O TOTAL DE VOTOS PARA O 2º CANDITADO É = ", cont2)
    escreval ("O TOTAL DE VOTOS var
   prec_unit, pais, trans2, prec_total, seguro, porc_impos, imp, imp_total: real
   trans, carga,meio: caracter
inicio
      imp_total <- 0
      escreval("INFORME O PREÇO UNITÁRIO")
      ESCREVA ("R$ ")
      leia(prec_unit)
       ENQUANTO (prec_unit < 0) FACA
          ESCREVA ("VALOR INVÁLIDO. DIGITE NOVAMENTE! ")
          ESCREVA ("R$ ")
          leia(prec_unit)
       FIMENQUANTO
       SE (prec_unit <> 0) ENTAO
         REPITA
            ESCREVAL("INFORME O PAÍS DE ORIGEM (1) BRASIL, (2) PORTUGAL e (3) OUTROS")
            ESCREVA ("PAÍS ")
            leia(pais)
            SE (pais = 1) ENTAO
              ESCREVAL ("PAÍS = BRAISL")
            SENAO
              SE (pais = 2) ENTAO
                ESCREVAL ("PAÍS = PORTUGAL")
              SENAO
                SE (pais = 3) ENTAO
                  ESCREVAL ("PAÍS = OUTROS")
                FIMSE
              FIMSE
            FIMSE
            ENQUANTO (pais < 1) ou (pais > 3) FACA
              ESCREVAL ("PAÍS INVÁLIDO. INFORME NOVAMENTE O PAÍS!")
              ESCREVA ("PAÍS")
              leia(pais)
            SE (pais = 1) ENTAO
              ESCREVAL ("PAÍS = BRAISL")
            SENAO
              SE (pais = 2) ENTAO
                ESCREVAL ("PAÍS = PORTUGAL")
              SENAO
                SE (pais = 3) ENTAO
                  ESCREVAL ("PAÍS = OUTROS")
                FIMSE
              FIMSE
            FIMSE
            FIMENQUANTO
            ESCREVAL("INFORME O MEIO DE TRANSPORTE (T) TERRESTRE, (F) FLUVIAL e (A) AÉREO")
            leia(trans)
            ENQUANTO (trans <> "T") e (trans <> "F") e (trans <> "A") FACA
              ESCREVAL ("MEIO DE TRANSPORTE INFORMADO É INVÁLIDO. INFORME NOVAMENTE!")
              leia(trans)
            FIMENQUANTO
              ESCREVAL ("SUA CARGA É PERIGOSA? (S) SIM OU (N) NAO")
              leia(carga)
            ENQUANTO (carga <> "S") e (carga <> "N") FACA
               ESCREVAL ("VOCÊ INFORMOU UM TIPO DE CARGA INVÁLIDO. INFORME NOVAMENTE!")
               leia(carga)
            FIMENQUANTO
            SE (trans = "T") entao
               meio <- "Terestre"
            SENAO
              SE (trans = "F") entao
                meio <- "Fluvial"
              Senao
                se (trans = "A") entao
                  meio <- "Aereo"
                fimse
              fimse
            fimse
            SE (prec_unit < 280) ou (prec_unit = 280) ENTAO
                porc_impos <- (prec_unit*5) / 100
            SENAO
                SE (prec_unit > 280) ENTAO
                   porc_impos <- (prec_unit*10) / 100
                FIMSE
            FIMSE
            SE (carga = "s") ENTAO
            SE (pais = 1) ENTAO
               trans2 <- 140
            FIMSE
            SE (pais = 2) ENTAO
                  trans2 <- 59
            FIMSE
            SE (pais = 3) ENTAO
               trans2 <- 67
            FIMSE
            SENAO
               SE (carga = "n") ENTAO
               SE (pais = 1) ENTAO
                   trans2 <- 34
               FIMSE
               SE (pais = 2) ENTAO
                    trans2 <- 59
               FIMSE
               SE (trans = 3) ENTAO
                   trans2 <- 168
               FIMSE
               FIMSE
             FIMSE
             SE (pais = 2) ou (trans = "a") ENTAO
                seguro <- (prec_unit/2)
             SENAO
                 SE (pais <> 2) ou (trans <> "a") ENTAO
                    seguro <- 0
                 FIMSE
             FIMSE
             prec_total <- prec_unit+porc_impos + seguro + trans2
             imp <- porc_impos
             imp_total <- imp_total + imp
             prec_total <- prec_unit + porc_impos + seguro + trans2
             limpatela
             escreval("")
             escreval("O imposto unitário custa: ",porc_impos," reais")
             escreval("O transporte ",meio," custa: ",trans2," reais")
             escreval("O seguro custa: ",seguro," reais")
             escreval("O preço final é: ",prec_total," reais")
             escreval("")
             escreval("INFORME O PRÓXIMO VALOR UNITÁRIO ")
             ESCREVA ("R$ ")
             leia(prec_unit)
             ENQUANTO (prec_unit < 0) FACA
               escreva("VALOR INVÁLIDO. INFORME NOVAMENTE")
               leia(prec_unit)
             FIMENQUANTO
         ATE (prec_unit = 0)
      SENAO
        escreval("Você não digitou nenhum valor válido.")
      FIMSE
        escreval("O total dos impostos é: ",imp_total," reais")
fimalgoritmo

PARA O 3º CANDITADO É = ", cont3)
    escreval ("O TOTAL DE VOTOS PARA O 4º CANDITADO É = ", cont4)
    escreval ("O TOTAL DE VOTOS NULO É = ", cont5)
    escreval ("O TOTAL DE VOTOS EM BRANCO É = ", cont6)
    escreval ("A PERCENTAGEM DE VOTOS NULOS SOBRE O TOTAL DE VOTOS É =", perc1)
    escreval ("A PERCENTAGEM DE VOTOS EM BRANCO SOBRE O TOTAL DE VOTOS É =", perc2)
fim




2) Faça um programa que receba um conjunto de valores inteiros e positivos, calcule e mostre o maior e o menor valor do conjunto. Considere que:
-        para encerrar a entrada de dados, deve ser digitado valor zero;
-        para valores negativos, deve ser enviada uma mensagem;
-        os valores negativos ou iguais a zero não entram nos cálculos.



var
  NRO,MAIOR,MENOR,CONT:INTEIRO
  TESTE:LOGICO
inicio
  REPITA
   ESCREVAL ("DIGITE UM NÚMERO")
   LEIA (NRO)
   SE (NRO < 0) ENTAO
     ESCREVAL("O VALOR INFORMADO É NEGATIVO, ELE NÃO ENTRARÁ NOS CÁLCULOS.")
   FIMSE
   SE (NRO > 0) ENTAO
     TESTE <- VERDADEIRO
     CONT <- CONT + 1
   SE (NRO > 0) ENTAO
     SE (CONT = 1) ENTAO
       MAIOR <- NRO
       MENOR <- NRO
     SENAO
       SE MAIOR < NRO ENTAO
         MAIOR <- NRO
       SENAO
         SE MENOR > NRO ENTAO
           MENOR <- NRO
         FIMSE
       FIMSE
     FIMSE
   FIMSE
  FIMSE
  ATE (NRO = 0)
  SE TESTE = VERDADEIRO ENTAO
    ESCREVAL ("MAIOR =",MAIOR)
    ESCREVAL ("MENOR",MENOR)
  SENAO
    ESCREVAL ("VOCÊ ENCERROU O PROGRAMA DIGITANDO O (O).")
    ESCREVAL ("PORTANTO, NÃO EXISTE MAIOR OU MENOR.")
  FIMSE
fimalgoritmo


3) Faça um programa que receba os dados a seguir de vários produtos: preço unitário, país de origem (1- Brasil, 2- Portugal e 3 – outros), meio de transporte (T – terrestre, F – fluvial e A – aéreo), carga perigosa (S- sim, N – não), finalize a entrada de dados com um preço inválido, ou seja, menor ou igual a zero e que calcule e mostre:
  • O valor do imposto, usando a tabela a seguir.
Preço unitário
Percentual de imposto sobre o preço unitário
Até R$ 280,00
5.00%
Maior que R$ 280,00
10.00%

  • O valor do transporte usando a tabela a seguir
Carga Perigosa
País de Origem
Valor do Transporte
S
1
R$ 140,00
2
R$ 59,00
3
R$ 67,00
N
1
R$ 34,00
2
R$ 59,00
3
R$ 168,00

  • O valor do seguro, usando a regra a seguir:
                        Os produtos que vêm de Portugal e os produtos que utilizam transporte                         aéreo pagam metade do valor do seu preço unitário como seguro.

  • O preço final, ou seja, preço unitário mais imposto mais valor do transporte mais valor do seguro.
  • O total dos impostos (somando impostos de todos os produtos).

var
   prec_unit, pais, trans2, prec_total, seguro, porc_impos, imp, imp_total: real
   trans, carga,meio: caracter
inicio
      imp_total <- 0
      escreval("INFORME O PREÇO UNITÁRIO")
      ESCREVA ("R$ ")
      leia(prec_unit)
       ENQUANTO (prec_unit < 0) FACA
          ESCREVA ("VALOR INVÁLIDO. DIGITE NOVAMENTE! ")
          ESCREVA ("R$ ")
          leia(prec_unit)
       FIMENQUANTO
       SE (prec_unit <> 0) ENTAO
         REPITA
            ESCREVAL("INFORME O PAÍS DE ORIGEM (1) BRASIL, (2) PORTUGAL e (3) OUTROS")
            ESCREVA ("PAÍS ")
            leia(pais)
            SE (pais = 1) ENTAO
              ESCREVAL ("PAÍS = BRAISL")
            SENAO
              SE (pais = 2) ENTAO
                ESCREVAL ("PAÍS = PORTUGAL")
              SENAO
                SE (pais = 3) ENTAO
                  ESCREVAL ("PAÍS = OUTROS")
                FIMSE
              FIMSE
            FIMSE
            ENQUANTO (pais < 1) ou (pais > 3) FACA
              ESCREVAL ("PAÍS INVÁLIDO. INFORME NOVAMENTE O PAÍS!")
              ESCREVA ("PAÍS")
              leia(pais)
            SE (pais = 1) ENTAO
              ESCREVAL ("PAÍS = BRAISL")
            SENAO
              SE (pais = 2) ENTAO
                ESCREVAL ("PAÍS = PORTUGAL")
              SENAO
                SE (pais = 3) ENTAO
                  ESCREVAL ("PAÍS = OUTROS")
                FIMSE
              FIMSE
            FIMSE
            FIMENQUANTO
            ESCREVAL("INFORME O MEIO DE TRANSPORTE (T) TERRESTRE, (F) FLUVIAL e (A) AÉREO")
            leia(trans)
            ENQUANTO (trans <> "T") e (trans <> "F") e (trans <> "A") FACA
              ESCREVAL ("MEIO DE TRANSPORTE INFORMADO É INVÁLIDO. INFORME NOVAMENTE!")
              leia(trans)
            FIMENQUANTO
              ESCREVAL ("SUA CARGA É PERIGOSA? (S) SIM OU (N) NAO")
              leia(carga)
            ENQUANTO (carga <> "S") e (carga <> "N") FACA
               ESCREVAL ("VOCÊ INFORMOU UM TIPO DE CARGA INVÁLIDO. INFORME NOVAMENTE!")
               leia(carga)
            FIMENQUANTO
            SE (trans = "T") entao
               meio <- "Terestre"
            SENAO
              SE (trans = "F") entao
                meio <- "Fluvial"
              Senao
                se (trans = "A") entao
                  meio <- "Aereo"
                fimse
              fimse
            fimse
            SE (prec_unit < 280) ou (prec_unit = 280) ENTAO
                porc_impos <- (prec_unit*5) / 100
            SENAO
                SE (prec_unit > 280) ENTAO
                   porc_impos <- (prec_unit*10) / 100
                FIMSE
            FIMSE
            SE (carga = "s") ENTAO
            SE (pais = 1) ENTAO
               trans2 <- 140
            FIMSE
            SE (pais = 2) ENTAO
                  trans2 <- 59
            FIMSE
            SE (pais = 3) ENTAO
               trans2 <- 67
            FIMSE
            SENAO
               SE (carga = "n") ENTAO
               SE (pais = 1) ENTAO
                   trans2 <- 34
               FIMSE
               SE (pais = 2) ENTAO
                    trans2 <- 59
               FIMSE
               SE (trans = 3) ENTAO
                   trans2 <- 168
               FIMSE
               FIMSE
             FIMSE
             SE (pais = 2) ou (trans = "a") ENTAO
                seguro <- (prec_unit/2)
             SENAO
                 SE (pais <> 2) ou (trans <> "a") ENTAO
                    seguro <- 0
                 FIMSE
             FIMSE
             prec_total <- prec_unit+porc_impos + seguro + trans2
             imp <- porc_impos
             imp_total <- imp_total + imp
             prec_total <- prec_unit + porc_impos + seguro + trans2
             limpatela
             escreval("")
             escreval("O imposto unitário custa: ",porc_impos," reais")
             escreval("O transporte ",meio," custa: ",trans2," reais")
             escreval("O seguro custa: ",seguro," reais")
             escreval("O preço final é: ",prec_total," reais")
             escreval("")
             escreval("INFORME O PRÓXIMO VALOR UNITÁRIO ")
             ESCREVA ("R$ ")
             leia(prec_unit)
             ENQUANTO (prec_unit < 0) FACA
               escreva("VALOR INVÁLIDO. INFORME NOVAMENTE")
               leia(prec_unit)
             FIMENQUANTO
         ATE (prec_unit = 0)
      SENAO
        escreval("Você não digitou nenhum valor válido.")
      FIMSE
        escreval("O total dos impostos é: ",imp_total," reais")
fimalgoritmo



 



Aula 15 - 01/06/2011 - MAIS EXERCICIOS

No começo  da aula discutimos os motivos das notas baixas nas provas.... ficou decidido que a turma tera mais empenho e o professor ira para mais exercicios antes de avançar no conteudo. Abaixo exercicios realizados


1. Um supermercado deseja reajustar os preços de seus produtos usando o seguinte critério, o produto podera ter o preço aumentado ou diminuido. Para o preço ser alterado, o produto deve preemcher pelo menos um dos requisitos a seguir

VENDA MEDIA
PREÇO ATUAL
% DE AUMENTO
% DE DIMINUIÇÃO
<500
<R$30,00
10
-
>=500E<1.200
>=R$30,00 E <R$ 80,00
15
-
>=1200
>=R$80,00
-
20

Faça um programa que receba o preço atual e a venda media mensal do produto, caucule e mostre o novo preço.


var
  valor,media,resp,diferenca:real
inicio
  escreval("DIGITE O VALOR DO PRODUTO")
  leia(valor)
  escreval("DIGITE A MEDIA MENSAL")
  leia(media)
  SE (media<500)e(valor<30) entao
    diferenca<-valor*0.10
    resp<-valor+diferenca
    escreval("ESTE PRODUTO ESTA DENTRO DAS REGRAS DE REAJUSTE!")
    escreval("O NOVO VALOR DEVE SER",resp)
  SENAO
    SE (media>=500)e(media<1200) e (valor>=30) e (valor<80) entao
      diferenca<-valor*0.15
      resp<-valor+diferenca
      escreval("ESTE PRODUTO ESTA DENTRO DAS REGRAS DE REAJUSTE!")
      escreval("O NOVO VALOR DEVE SER",resp)
    SENAO
      SE (media>=1200) e (valor>=80) entao
        diferenca<-valor*0.20
        resp<-valor-diferenca
        escreval("ESTE PRODUTO ESTA DENTRO DAS REGRAS DE REAJUSTE!")
        escreval("O NOVO VALOR DEVE SER",resp)
      SENAO
        ESCREVAL("ESTE PRODUTO CONTINUA COM O MESMO VALOR")
      FIMSE
    FIMSE
  FIMSE
fimalgoritmo


2. Faça um programa que monte os oito primeiros termos da sequencia de Fibonacci:

var
  resp,cont,valor1,valor2:inteiro
inicio
  valor1<-0
  valor2<-1
  escreval(valor1)
  escreval(valor2)
  PARA cont de 3 ate 8 FACA
    resp<-valor1+valor2
    escreval(resp)
    valor1<-valor2
    valor2<-resp
  FIMPARA
fim
Download




Jossandro aproveito aula para realizar uma revisão geral de alguns conceitos, muitos deles eu ja sabia mais sembre agrega algo. Consegui realizar exercicios sem muita dificuldade, precisei consultar o livro para fazer o segundo exercicio mais funcionou bem. Ansincioso pelo proximo conteudo. este mes não temos duas aulas por semana então os post vão diminuir de frequencia.
01 - Dados três valores x, y e z, faça um algoritmo para verificar se eles podem ser os comprimentos dos lados de um triângulo e, se forem, verifique se é um triângulo eqüilátero, isóscele ou escaleno. Se eles não formarem um triângulo escreva uma mensagem de alerta. Considere que:

* O comprimento de cada lado de um triângulo é menor do que a soma dos outros dois lados;
* Um triângulo eqüilátero tem os seus três lados iguais;
* Um triângulo isóscele tem o comprimento de dois lados iguais; e
* Um triângulo escaleno tem os três lados diferentes.


var
x, y, z:inteiro
inicio
escreval("Digite a medida dos 3 lados do triangulo")
   leia(x, y, z)
   se (x >= y+z) ou (y  >= x+z) ou (z >= x+y) entao
      escreval("As medidas informadas nao formam um triangulo")
   senao
      se (x=y) e (y=z) entao
         escreval("Triangulo equilatero - todos os lados iguais")
      senao
         se (x=y) ou (x=z) ou (y=z) entao
            escreval("Triangulo isoceles - 2 lados iguais")
         senao
            se (x<>y) e (x<>z) e (y<>z) entao
               escreval("Triangulo escaleno - todos os lados diferentes")
            fimse
         fimse
      fimse
   fimse     
fimalgoritmo

Download 

02- Faça um programa que receba a medida de um ângulo em graus. Calcule e mostre o quadrante em que se localiza esse ângulo. Considere os quadrantes da trigonometria e, no caso de ângulos maiores que 360º ou menores que -360º, reduzi-los, mostrando também o número de voltas e o sentido da volta (horário ou anti-horário).
 

var
   a: inteiro
   voltas: real
inicio
   escreval("Digite um angulo")
   leia(a)
   se (a>360) ou (a < -360) entao
      voltas <- a / 360
      a <- a mod 360
   senao
      voltas <- 0
   fimse
   se (a=0) ou (a=90) ou (a=180) ou (a=270) ou (a=360) ou (a=-90) ou (a=-180) ou (a=-270) ou (a=-360) entao
      escreval("Esta sobre um dos eixos")
   senao
      se ((a >0) e (a < 90)) ou ((a < -270) e (a > -360)) entao
         escreval("1 quadrante")
      fimse
      se ((a >90) e (a < 180)) ou ((a < -180) e (a > -270)) entao
         escreval("2 quadrante")
      fimse
      se ((a >180) e (a < 270)) ou ((a < -90) e (a > -180)) entao
         escreval("3 quadrante")
      fimse
      se ((a >270) e (a < 360)) ou ((a < 0) e (a > -90)) entao
         escreval("4 quadrante")
      fimse
      escreva(" ", voltas," voltas no sentido ")
      se (a<0) entao
         escreval(" horario")
      senao
         escreval(" anti-horario")
      fimse
   fimse
fim

Download 

03 -  Faça um programa que receba vários números, calcule e mostre:

   - a soma dos números digitados;
   - a quantidade de números digitados;
   - a média dos números digitados;
   - o maior número digitado;
   - o menor número digitado;
   - a média dos números pares;
   - a porcentagem de números ímpares entre todos os números digitados;
   - a soma dos números primos digitados;
Finalize a entrada de dados com a digitação do número 99999. Este número não pode considerado nos cálculos.

var
   num, prim, soma_prim, soma, qtd, z, maior, menor, qtd_par, soma_par, qtd_impar: inteiro
   media_par, media, perc : real
inicio
   qtd <- 0
   qtd_par<-0
   soma_par <-0
   soma_prim <- 0
   qtd_impar <-0
   escreval("Digite um numero")
   leia(num)
   repita
     se (qtd=0) entao
        maior <- num
        menor <- num
     senao
        se (num > maior) entao
           maior <- num
        fimse
        se (num < menor ) entao
           menor <- num
        fimse
     fimse
     soma <- soma + num
     qtd <- qtd + 1
     se (num mod 2 = 0) entao
        soma_par <- soma_par + num
        qtd_par <- qtd_par + 1
     senao
        qtd_impar <- qtd_impar + 1
     fimse
     prim <- 0
     para z de 1 ate num faca
        se (num mod z = 0) entao
           prim <- prim + 1
        fimse
     fimpara
     se (prim <= 2)entao
        soma_prim <- soma_prim + num
     fimse
     leia(num)
   ate(num=99999)
   se (qtd = 0) entao
      escreval("Nenhum numero digitado")
   senao
      escreval("A soma e ",soma)
      escreval("A quantidade e ",qtd)
      media <- soma / qtd
      escreval("A media e ", media)
      escreval("O maior e ", maior)
      escreval("O menor e ", menor)
      se (qtd_par = 0 ) entao
         escreval("Nenhum numero par foi digitado")
      senao
         media_par <- soma_par / qtd_par
         escreval("A media dos pares e ", media_par)
      fimse
      perc <- qtd_impar * 100 / qtd
      escreval("O percentual de impares e ", perc)
      escreval("A soma dos primos e ",soma_prim)
   fimse
fim

Download
 






 

Aula 13 - 25/05/2011 - PROVA!!!!



Na aula de hoje realizamos nossa primeira prova nesta materia, estava bem inseguro mais consegui entender a logica das 3 questões.... isso mesmo 3 questoes uma valendo 4 e outras duas 3... Emfim assim que o jossandro devovelas em posto aqui!


Aulas 11 e 12 - 18/05/11 e 19/05/11 - Revisão Prova

1) Faça um programa que recebe um número positivo e maior que zero, calcule e mostre:
a) o número digitado ao quadrado;
b) o número digitado ao cubo;
c) a raiz quadrada do número digitado;
d) a raiz cúbica do número digitado.

Var
  nro,quadrado,cubo,r_quadrada,r_cubica:real
inicio
  escreval("DIGITE UM NUMERO")
  leia(nro)
  quadrado<-nro*nro
  escreval("ESTE NUMERO AO QUADRADO É =",quadrado)
  cubo<-nro*nro*nro
  escreval("ESTE NUMERO AO CUBO É=",cubo)
  r_quadrada<-RaizQ(nro)
  escreval("A RAIZ QUADRADA DESTE NUMERO É=",r_quadrada)
  r_cubica<-nro^(1/3)
  escreval("A RAIZ CUBICA DESTE NUMERO É =",r_cubica)
fim


2) Faça um programa para verificar se um inteiro positivo lido é par ou ímpar (mostre por escrito se é par ou ímpar). Se o número for ímpar, multiplique por 2 e mostre o resultado, caso contrário multiplique por ½ e mostre o resultado.    (OBS: Par: x mod 2 = 0)

var
nro:inteiro
resp:real
inicio
  escreval("DIGITE UM NUMERO")
  leia(nro)
  Se nro mod 2=0 entao
      resp<-nro*1/5]
      escreval("O NUMERO DIGITADO É PAR")
      escreval("O RESULTADO DA MULTIPLICAÇÃO É",resp)
  Senao
      resp<-nro*2
      escreval("O NUMERO DIGITADO É IMPAR")
      escreval("O RESULTADO DA MULTIPLIAÇÃO É",resp)
  fimse
fim

3) Faça um programa que receba o custo total de um espetáculo teatral e o preço do convite desse espetáculo. Esse programa deverá calcular e mostrar a quantidade de convites que devem ser vendidos para que pelo menos o custo do espetáculo seja alcançado.

Var
valor_total,valor_conv,resp:real
inicio
  escreval("DIGITE O VALOR DO ESPETACULO")
  leia(valor_total)
  escreval("DIGITE O VALOR DO CONVITE")
  leia(valor_conv)
  SE valor_conv <> 0 entao
      resp<-valor_total/valor_conv
      escreval("VC PRICESA VENDER",resp," CONVITES")
  SENAO
     escreval("VOCÊ DIGITOU UM VALOR INCORETO")
  FIMSE 
fim 


4) Faça um programa que receba três números e mostre-os em ordem decrescente.

Var
valor_total,valor_conv,resp:real
inicio
  escreval("DIGITE O VALOR DO ESPETACULO")
  leia(valor_total)
  escreval("DIGITE O VALOR DO CONVITE")
  leia(valor_conv)
  SE valor_conv <> 0 entao
      resp<-valor_total/valor_conv
      escreval("VC PRICESA VENDER",resp," CONVITES")
  SENAO
     escreval("VOCÊ DIGITOU UM VALOR INCORETO")
  FIMSE
fim
Download 


5) Faça um programa que receba a hora do início de um jogo e a hora final (cada hora é composta por duas variáveis inteiras: hora e minuto). Calcule e mostre a duração do jogo (horas e minutos), sabendo-se que o tempo máximo de duração do jogo é de 24 horas e que ele pode iniciar-se em um dia e terminar no dia seguinte.


var
   horaIni, minIni, horaFim, minFim, minDif, horaDif:inteiro
inicio
   escreval("Digite hora e minutos do inicio do jogo ")
   leia(horaIni, minIni)
   escreval("Digite hora e minutos do fim do jogo ")
   leia(horaFim, minFim)
   se (minIni > minFim) entao
      minFim <- minFim + 60
      horaFim <- horaFim - 1
   fimse
   se (horaIni > horaFim) entao
      horaFim <- horaFim + 24
   fimse
   minDif <- (minFim - minIni)
   horaDif <- (horaFim - horaIni)
   escreval("O jogo durou", horaDif, " horas e ", minDif, " minutos")
fim
Download 

6) Faça um programa que receba cem números, calcule e mostre a soma dos números pares e a média dos números primos.

var
x,y,nro,primo:inteiro
cont,media,soma,parcial:real

inicio
  soma<-0
  PARA x de 1 ATE 100 FACA
    escreval("DIGITE UM NUMERO")
    leia(nro)
    SE (nro mod 2=0) entao
       escreval("VC DIGITOU UM NUMERO PAR!")
       soma<-soma+nro
    FIMSE
    primo<-0
    PARA y de 1 ATE nro FACA
       SE (nro mod y =0) ENTAO
          primo<-primo+1
       FIMSE
     FIMPARA
     cont<-0
     SE primo<=2 ENTAO
       escreval("VC DIGITOU UM NUMERO PRIMO")
       cont<-cont+1
       parcial<-parcial+primo
     FIMSE
   FIMPARA
   media<-parcial/cont
   escreval(" A SOMA DOR NUMEROS PARES É",soma)
   escreval("A MEDIA DOS NUMERO PRIMOS É",media)
fim

07)Foi feita uma estatística em cinco cidades brasileiras para coletar dados sobre acidentes de trânsito, foram obtidos os seguintes dados:
a) Código da cidade;
b) Número de veículos de passeio(em 2010);
c) Número de acidentes de trânsito com vitimas(em 2010).
Deseja-saber:
a) Qual o maior e  menor índice de acidentes de trânsito e a que cidades pertencem;
b) Qual a média de veículos nas cinco cidades juntas;
c) Qual a média de acidentes de trânsito nas cidades com menos de 2.000 veículos de passeio.

var
   cont, cod, num_vei, num_acid, maior, cid_maior, menor,    cid_menor: inteiro
   media_vei, media_acid: real
   soma_vei, soma_acid, cont_acid:inteiro
inicio
   soma_vei <-0
   soma_acid <-0
   cont_acid <- 0
   para cont <- 1 ate 5 faca
      escreval("Digite o codigo da cidade, o numero de veiculos e o numero de acidentes" )
      leia(cod, num_vei, num_acid)
      se (cont=1) entao
         maior <- num_acid
         cid_maior <- cod
         menor <- num_acid
         cid_menor <- cod
      senao
         se (num_acid > maior) entao
            maior <- num_acid
            cid_maior <- cod
         fimse
         se (num_acid < menor) entao
            menor <- num_acid
            cid_menor <- cod
         fimse
      fimse
      soma_vei <- soma_vei + num_vei
      se (num_vei < 2000) entao
         soma_acid <- soma_acid + num_acid
         cont_acid <- cont_acid + 1
      fimse
   fimpara
   escreval("O maior indice e ",maior," na cidade ",cid_maior)
   escreval("O menor indice e ",menor," na cidade ",cid_menor)
   media_vei <- soma_vei / 5
   escreval("A media de veiculos e ",media_vei)
   se (cont_acid = 0) entao
      escreval("Nao foi digitada nenhuma cidade com menos de 2000 veiculos" )
   senao
      media_acid <- soma_acid / cont_acid
      escreval("A media de acidentes em cidades com menos de 2.000 veiculos e ", media_acid)
   fimse
fim



Aula 10 - 12/05/2011 - Exercícios estrutura de repetição

Na aula de hoje foi nos passado 5 exercícios de repetição para pegarmos a pratica, depois de muito torrar a cabeça consegui fazer todos. Abaixo os dois primeiros o resto postarei na próxima aula quando o professor corrigi-los.

1 - Faça um programa que leia 10 números, e no final calcula e mostre a média.

Var
x,n,soma,cont:inteiro
media:real

inicio
   PARA x de 1 ate 10 faca
     escreval(“Digite um numero”)
     leia(n)
     soma<-soma+n
     cont<-cont+1
  FIMPARA
  media<-soma/cont
  escreval(“A media dos numeros digitados é”,media,”)
fim 

2 - Faça um programa em que o usuário informe a quantidade de números a serem lidos, e no final, calcule e mostre a média dos números lidos.

var
media:real
soma,cont,n,x,quant:inteiro
INICIO
   soma<-0
   cont<-0
   escreval("Digite quantos numero deseja caucular")
   leia(quant)
   SE quant=0 entao
      escreval(" VC DIGITOU 0 NENHUM CAUCULO FOI FEITO")
   SENAO
      PARA x de 1 ate quant FACA
        escreval("Digite o numero")
        leia(n)
        soma<-soma+n
        cont<-cont+1
     FIMPARA
     media<-soma/cont
     escreval("A media dos numeros digitados é",media)
  FIMSE
FIM


Esta aula foi um quebra cabeças pra mim, demorei a pegar a logica dos problemas, emfim depois de um tempo consegui resolver os primeiros . estes dois ja corrigidos pelo professor. estão acima. Agora aguardo a correção do resto que ficou para proxima aula pois aqueles sim são mais complexos. Estou no caminho certo cada vez fica mais clara pra mim a materia, resolvo o problema com mais clareza, Ja estou ancioso pela prova.

 
Aula 09 - 11/05/2011 - Estrutura de repetição


Na aula de hoje corrigimos a questão que não deu tempo para corrigir na ultima aula, e novamente avançamos um pouco mais chegamos até ESTRUTURAS DE REPETIÇÃO, um tanto quanto complicado de entender a principio mais depois de bastante exercícios quem sabe. Abaixo dois primeiros exercícios que serviam de exemplo.


Exercicios:

1. Faça o calculo fatorial do número digitado pelo usuario.

fatorial
var
x, n, fat : inteiro
inicio
escreval ("Digite o número para ser calculado o fatorial")
leia(n)
fat<- 1
PARA x de 1 ate n FACA
fat<- fat*x
escreval("x= ",x,"fat= ",fat)
FIMPARA
escreval("O fatorial de ",n," é", fat)
fim


2 - Faça um programa que leia um valor, número inteiro e positivo, calcule e mostre o valor de E, conforme a fórmula a seguir: E=1+1/1!+1/2!+1/3!+...+1/N!

var
resultado: real
n, x, y, fat: inteiro
inicio
escreva("Digite um número para calcular a formula: ")
leia (n)
resultado<-1
PARA x <- 1 ate n FACA
fat<-1
PARA y <- 1 ate x FACA
fat<- fat * y
FIMPARA
resultado<- resultado+1/fat
FIMPARA
escreva ("O resultado é ", resultado)
fim



A primeira vista confesso que fiquei apavorado, pela primeira vez na matéria não consegui intender a logica, mesmo depois de ter a resposta. Então mãos a obra, vou fazer bastante exercícios afinal vem uma prova por ai e tenho que fica esperto. Alem de todo o conteúdo aprendemos também alguma funções do visaulG com a tecla F8 que passa linha por linha. Foi dada dicas de erros que temos que tomar cuidado com pro exemplo atribuir valores a variável que esta contando no comando PARA. Esta nova ferramenta me assustou um pouco mais acredito que com o passar das aulas eu vá me acostumar com ela.

Abaixo material passado em aula.

ESTRUTURA DE REPETIÇÃO

Estrutura de repetição são comandos que ficam repetindo o trecho especificado do código. Existem três comandos de repetição, são eles:

PARA - este comando é utilizado quando se é necessário um número finito de repetições.
Ex: PARA x=1 ate 10 FACA
escreva x=9
FIMPARA // Executando a tabuada do 9 por completo.

Obs. Dentro do comando PARA existe mais um comando que é opcional, é o PASSO que pode ser utilizado em casos que apenas alguns específicos números da lista seriam selecionados, por exemplo:
PARA x=1 ate 10 PASSO 2 FACA
escreva x=9
FIMPARA // Neste caso seriam utilizados apenas os números 1,3,5,7 e 9.

ENQUANTO - este comando é utilizado quando é infinita as vezes que o trecho do código pode ser repetida. Ex: ENQUANTO (d>31) ou (d<1)
escreva("Dia errado")
leia(d)
FIMENQUANTO // Neste caso enquanto o comando não for verdadeiro ele ficara repetindo.

REPITA - este comando é similar ao ENQUANTO, a diferença é que ele ficará repetindo até o comando ser verdadeiro, e o teste que ele fará para ver se o comando continua ou não agora é no final.
Ex: REPITA
leia(d)
ATE (d<=31) e (d>0) // Enquanto o dia digitado pelo usuário não for menor ou igual a 31 e maior que 0 ele ficara repetindo.





Aula 7 e 8  - 04/05/2011 e 05/05/2011 - Exercicios do SE


Durante Aula de Hoje professor passou 7 exercicios, para treinarmos o que aprendemos, o interessante da aula de hoje foi uma ferramenta chamada Mod que nada mais é do que uma maneira de programa escrito usar ou comparar o numero que sobra de uma divisão abaixo exercicios


Exercicios:

1. Faça um programa que receba um número inteiro e verifique se é par ou ímpar.

var
  numero:inteiro 


inicio
  escreval("Digite o Numero ")
  leia(numero)
  SE numero MOD 2=0
    escreva("Esse numero é Par")
  SENAO
    escreval("Este numero é Impar")
  FIMSE
fim
 



2. A nota final de um estudante é calculada a partir de três notas atribuídas, respectivamente , a um trabalho de laboratório, a uma avaliação semestral e a um exame final. A média das três notas mencionadas obedece aos pesos a seguir:



























Nota
Peso
Trabalho de laboratório
2
Avaliação semestral
3
Exame final
5


Faça um programa que receba as três notas, calcule e mostre a média ponderada e o conceito que segue a tabela:



























Média Ponderada
Conceito
[8,0 – 10,0]
A
[7,0 – 8,0[
B
[6,0 – 7,0[
C
[5,0 – 6,0[
D
[0,0 – 5,0[
E


var
  nota1,nota2,nota3,p1,p2,p3,ponderada:real


inicio
  Escreval ("Digite primeira nota")
  leia(nota1)
  escreval("Digite Segunda Nota ")
  leia(nota2)
  escreval("Digite Terceira nota")
  leia(nota3)
  p1<-(nota1*2)/10
  p2<-(nota2*3)/10
  p3<-(nota3*5)/10
  ponderada<-(p1+p2+p3)
  SE (ponderada >= 0)e(ponderada<5)ENTAO
  escreval("Sua nota é = E")
  SENAO
    Se (ponderada>=5)e(ponderada<6)ENTAO
    escreval("Sua nota é = D")
    SENAO
      Se (ponderada>=6)e(ponderada<7)ENTAO
      escreval("Sua nota é = C")
      SENAO
        Se (ponderada>=7)e(ponderada<8)ENTAO
        escreval("Sua nota é = B")
        SENAO
          Se (ponderada>=9)e(ponderada<=10)ENTAO
          escreval("Sua nota é = A")
          FIMSE
        FIMSE
     FIMSE
    FIMSE
  FIMSE
fim





3. Um funcionário de uma empresa recebe aumento salarial anualmente. Sabe-se que:
a) Esse funcionário foi contratado em 2007, com salário inicial de R$ 1.000,00.
b) Em 2008, ele recebeu aumento de 1,5% sobre seu salário inicial.
c) A partir de 2009 (inclusive), os aumentos salariais sempre corresponderam ao dobro do percentual do ano anterior.
Faça um programa que determine o salário atual desse funcionário.

var
ano1,salario,ano2,ano3,ano4:real


inicio
  salario<-(1000)
  ano1<-(salario*1.5/100)+salario
  ano2<-(ano1*3/100)+ano1
  ano3<-(ano2*6/100)+ano2
  ano4<-(ano3*12/100)+ano3
  escreva(ano4)
fim



4. Faça um programa que receba três notas de um aluno, calcule e mostre a média aritmética e a mensagem constante na tabela a seguir. Aos alunos que ficaram para exame, calcule e mostra a nota que deverão tirar para serem aprovados, considerando que a média exigida é 6,0.
































Média Aritmética
Mensagem
[0,0 – 3,0[
Reprovado
[3,0 – 7,0[
Exame
[7,0 – 10,0]
Aprovado


var
  nota1,nota2,nota3,media,exame:real


inicio
  escreval("Digite a Primeira Nota")
  leia(nota1)
  escreval("Digite a Segunda Nota")
  leia(nota2)
  escreval("Digite a Terceira Nota")
  leia(nota3)
   media<-(nota1+nota2+nota3)/3
  exame<-(13-media)
  escreval("Sua Nota é =",media)
  SE (media>=0)e(media<3)ENTAO
    escreval("Você foi Reprovado")
    SENAO
     SE (media>=3)e(media<7)ENTAO
       escreval("Você ficou em exame, para passar deve tirar = ",exame)
       SENAO
         SE (media>=7)e(media<=10)ENTAO
         escreval(" Parabens, você foi aprovado.")
         SENAO
           SE(media>10)ENTAO
             escreval("ERRO")
             FIMSE
         FIMSE
       FIMSE
     FIMSE
fim




5. Faça um programa que receba dois números e mostre o maior.
 
var
n1,n2:inteiro


inicio
  escreval("Digite o primeiro Numero")
  leia(n1)
  escreval("Digite o segundo Numero")
  leia(n2)
  SE(n1=n2)e(n2=n1)ENTAO
         escreval("Os dois numeros são iguais")
         SENAO
           Se(n1>n2) ENTAO
           escreval (" O primeiro numero é maior")
           SENAO
             escreval(" O segundo numero é o maior")
         fimse
   fimse
fim





6. Faça um programa que receba três números e mostre-os em ordem crescente. Suponha que o usuários digitará três números diferentes.

var
  n1,n2,n3:real
inicio
  escreval("Digite o primeiro numero")
  leia(n1)
  escreval("Digite o segundo numero")
  leia(n2)
  escreval("Digite o terceiro numero")
  leia(n3)
  SE (n1>n2)e(n2>n3)ENTAO
    escreval(n3,n2,n1)
  SENAO
    SE (n1>n2)e(n2<n3)ENTAO
      escreval(n2,n1,n3)
    SENAO
      SE (n2>n3)e(n1<n3)ENTAO
        escreval(n1,n3,n2)
        SENAO
          SE (n2>n1)e(n1>n3)ENTAO
            escreval(n3,n1,n2)
            SENAO           
               SE (n3>n2)e(n1<n2)ENTAO
                 escreval(n1,n2,n3)
               SENAO
                  SE(n1=n2)ou(n2=n3)ENTAO
                    escreval("Este Software não trabalha com numeros iguais")
                    FIMSE
                FIMSE
            FIMSE
         FIMSE
      FIMSE
   FIMSE
fim




7. Faça um programa que determine a data cronologicamente maior entre duas datas fornecidas pelo usuário. Cada data deve ser composta por três valores inteiros, em que o primeiro representa o dia, o segundo, o mês e o terceiro, o ano.

var
  dia1,mes1,ano1,dia2,mes2,ano2:inteiro
inicio
  escreval("Digite a primeira data")
  escreva("Dia = ")
  leia(dia1)
  escreva("Mês = ")
  leia(mes1)
  escreva("Ano = ")
  leia (ano1)
  escreval("Pronto. Agora digite a segunda data:")
  escreva("Dia = ")
  leia(dia2)
  escreva("Mês = ")
  leia(mes2)
  escreva("Ano = ")
  leia (ano2)
  SE(dia1>31)ENTAO
    escreval("Você digitou um dia que não existe!Dia",dia1,"???")
    SENAO
      SE(dia2>31)ENTAO
        escreval("Você digitou um dia que não existe!Dia",dia2,"???")
      SENAO
        SE(mes1>12)ENTAO
          escreval("Você Digitou um mês que não existe!Mês",mes1,"???")
        SENAO
          SE(mes2>12)ENTAO
            escreval("Você Digitou um mês que não existe!Mês",mes2,"???")
          SENAO
             SE(ano1>ano2)ENTAO
               escreva("Primeira data é a maior")
             SENAO
               SE (ano1<ano2)ENTAO
                 escreva("Segunda data é a maior")
               SENAO
                 SE(ano1=ano2)ENTAO
                 SE(mes1>mes2)ENTAO
                   escreva("Primeira data é a maior")
                 SENAO
                   SE(mes1<mes2)ENTAO
                     escreva("Segunda data é a maior")
                   SENAO
                     SE(mes1=mes2)ENTAO
                     Se(dia1>dia2)ENTAO
                       escreva("Primeira data é a maior")
                     SENAO
                       SE(dia1<dia2)ENTAO
                          escreva("Segunda data é a maior")
                       SENAO
                         SE(dia1=dia2)ENTAO
                         escreva("As Datas são Iguais")
                          fimse
                        fimse
                     fimse
                   fimse
                 fimse
                fimse
              fimse
            fimse
          fimse
        fimse
      fimse
    fimse
  fimse
fim


Download



Aula de hoje foi tranquila,queimamos um pouco de massa cinzenta mais tranquilo, o professor frizou o cuidado que temos que ter ao usar o VisualG pois pra não cair na tentativa e erro e tambem porque na prova não teremos esta ferramenta! consegui fazer uma boa base. Agora bola pra frente!





Aula 6 - 27.04.2011 - Estrutura Condicional

Durante a aula de hoje corrigimos exercicios realizados na aula passado no visualG, Jossandro frisou alguns conceitos de mercado como por exemplo ' Não adianta fazer que nós achamos certo, devemos fazer o que o cliente tem em mente.".
Ficou decido em aula que iremos fazer mais exercicios antes de avançar para proximo conteudo. Abaixo exercicos realizados em aula:

1. Sabendo que 1 KW = 1/5 do salario minimo. faça um programa que receba o valor do salario minimo e a quantidade de kw consumido, caucule e mostre:
- O valor de cada Kw
- O valor a ser pago
- O valor com 15% de desconto.

var
   valor_salar, kw_cons, valor_kw, pagar, desc : real
inicio
      escreval("Digite o valor do salário minimo")
      leia (valor_salar)
      escreval("Digite o número de quilowatts consumidos")
      leia (kw_cons)
      valor_kw <- (valor_salar/5)
      pagar <- (valor_kw*kw_cons)
      desc <- (pagar-(pagar*15/100))
      escreval("O valor do quilowatt é: ", valor_kw, " reais")
      escreval("O valor da conta é: ", pagar, " reais")
      escreval("O valor da conta com 15% de desconto é: ", desc, " reais")
fimalgoritmo

Teste mesa
sala=800
kw=100kws

800/5=160
100*160=16000
16000-2400=13600

Material Utilizado em aula 

ESTRUTURA CONDICIONAL EM ALGORITIMOS
Estrutura condicional simples
        
    SE     condição
   ENTÃO  comando
O comando só sera executado se a condição for verdadeira. Uma condição é uma comparação que possui dois valores possíveis: verdadeiro ou falso
        SE condição
        ENTÃO INÍCIO
                   comando1
                   comando2
                   comando3
                   FIM
Os comandos 1,2 e 3 só serão executados se a condição for verdadeira. As palavras INÍCIO e FIM serão necessárias apenas quando dois ou mais comandos forem executados.
Estrutura condicional composta
        SE condição
        ENTÃO comando1
        SENÃO comando2
Se a condição for verdadeira, será executado o camando1; caso contrário, será executado comando2.
        SE condição
        ENTÃO INÍCIO
            comando1
            comando2
        FIM
        SENÃO INÍCIO
            comando3
            comando4
        FIM
                
Se a condição for verdadeira, o comando1 e o comando2 serão executados; caso contrário, o comando3 e o comando4 serão executados.
ESTRUTURA CONDICIONAL EM PASCAL
Estrutura condicional simples
         IF condição
        THEN comando
O comando só será executado se a condição for verdadeira. Uma condição é uma comparação que possui dois valores possíveis: verdadeiro e falso
        IF condição
        THEN        BEGIN
                comando1;
                comando2;
                comando3;
                END
Os comandos 1, 2 e 3 só serão executados  se a condição for verdadeira.
Estrutura condicional composta
        IF condição
        THEN comando1
        ELSE          comando2
Se a condição for verdadeira, será executado o comando1; caso contrário, será executado o comando2
        IF condição
        THEN  BEGIN
                  comando1
                  comando2
                  END
        ELSE          BEGIN
                  comando3
                  comando4
                  END
Se a condição for verdadeira, o comando1 e o comando2 serão executados; se for falsa, o comando3 e o comando4 serão executados.
Observações: Antes do comando ELSE não existe ponto-e-virgula.
Estrutura Case
Em alguns programas, existem situações mutuamente exclusivas, isto é, se uma situação for executada, as demais não serão. Quando for este o caso, um comando seletivo será indicado, e esse comando, em PASCAL. Tem seguinte sintaxe:
        CASE        seletor OF
                lista de alvos1:  comando1;
                lista de alvos2:  comando2;
                alvo3:  comando3;
                alvo4:  BEGIN
                        comando4;
                        comando5;
                        END;
                END;
Se o seletor atingir a lista de alvos1. O comando1 será executado; se atingir a lista de alvos2; o comando2 será executado; se atingir o alvo3,o comando3 serpa executado; se atingir o alvo4,então o comando4  e o comando5 serão executados. Se nenhum alvo for atingido, nada será executado.
CASE seletor OF
                lista de alvos1: BEGIN
                                comando1;
                                comando2;
                                END;
                lista de alvos2: comando3;
                ELSE comando4;
                END;
        Se o seletor atingir a lista de alvos1, o comando1 e o comando2 serão executados; se atingir a lista de alvos2, o comando3 será executado. Se nenhum for atingido, será executado o comando4.
        Os alvos podem ser valores únicos, listas de valores (separados por virgulas) ou faixas de valores, como no exemplo que se segue.
Exemplo:
                program teste;
                uses crt;
                var i: integer;
                begin
                clrscr;
                writeln(‘Digite um número’);
                readln(i);
                case i of
                        1: writeln(‘Número 1’);
                        2,5,6:writeln(‘Número 2 ou número 5 ou número 6’);
                        7..10:writeln(‘Número entre 7 e 10’);
                end;
                readln;
                end.
        A restrição da estrutura case é que o seletor só pode ser uma variável do tipo char, integer ou boolean.
OPERADORES LÓGICOS
Os principais operadores lógicos são: AND, OR e NOT, que significam e, ou, não e são usados para conjunção, disjunção e negação, respectivamente.

TABELA E
TABELA OU
 TABELA NÃO
V e V = V
V ou V = V
  Não V = F
V e F = F
V ou F = V
  Não F = V
F e V = F
F ou V = V

F e F = F
F ou F = F




Observação: Na linguagem PASCAL, quando existe mais de uma condição, elas devem estar entre parênteses.
Exemplos:
                IF x = 3
                THEN WRITELN(‘Número igual a 3’);
No exemplo, existe apenas uma condição, logo, os parênteses são opcionais.
                IF (X > 5) AND (X < 10)
                THEN WRITELN(‘Número entre 5 e 10’);
No exemplo anterior, existe mais de uma condição, logo, os parênteses são obrigatórios, ou seja, cada condição deve estar entre parênteses.
                IF ((X = 5) AND (Y = 2)) OR (Y = 3)
                THEN WRITELN(‘X é igual a 5 e Y é igual a 2, ou Y é igual a 3’);
No exemplo acima, existe mais de uma condição e mais de um tipo de operador lógico, logo, além dos parênteses de cada condição, devem existir ainda parênteses que indiquem a prioridade de execução das condições. Nesse exemplo, as condições com o operador AND, ou seja, ((X = 5) AND (Y = 3)), serão testadas, e seu resultado será testado com a condição OR (Y = 3).
                IF ((X = 5) AND (Y = 2)) OR (Y = 3)
                THEN WRITELN(‘X é igual a 5, e Y é igual a 2 ou Y é igual a 3’);
        Neste exemplo, existe mais de uma condição e mais de um tipo de operador lógico, logo, além dos parênteses de cada condição, devem existir ainda parênteses que indiquem a prioridade de execução das condições. Aqui, as condições com o operador OR, ou seja, ((Y = 2) OR (Y = 3)), serão testadas, e seu resultado será testado com a condição AND (X = 5).
        ESTRUTURA CONDICIONAL EM C/C++
        ESTRUTURA CONDICIONAL SIMPLES
        
                if (condição)
                    comando;
        O comando só será executado se a condição for verdadeira. Uma condição é uma comparação que possui dois valores possíveis: verdadeiro ou falso.
        
                if (condição)
                 {
                    comando1;
                    comando2;
                    comando3;
                 }
        Em C/C++, torna-se obrigatória a utilização de chaves quando existe mais de um comando a executar. Os comandos entre chaves { } só serão executados se a condição for verdadeira.
ESTRUTURA CONDICIONAL COMPOSTA
        if (condição)
    comando1;
else
            comando2;
Se a condição for verdadeira, será executado o comando1; se for falsa, será executado o comando2.
                
        if condição
        {
            comando1;
            comando2;
          }
        else
          {
              comando3;
              comando4;
          }



Exercicios:

Faça um programa que receba 3 notas e mostre a média e se o aluno foi aprovado ou reprovado.

var
nota1,nota2,nota3=real

inicio
   escreval("Digite a primeira nota")
   leia(nota1)
   escreval("Digite a segunda nota")
   leia(nota2)
   escreval("Digite a terceita nota")
   leia(nota3)
   media<-(nota1*nota2*nota3/3)
   escreva (" A média é  ",media)
      se media>=7 ENTAO
      escreva ("Aprovado")
      SENAO
      escreva (" Reprovado")
      fim-se
fim




Na aula de hoje avançamos um pouco e vimos " estrutura condicional". O que dá pra perceber, é que com certeza isso não para por ai, cada vez mais ferramentas serão apresentadas, novos recursos, eu particularmente estou gostando muito, é a primeira vez em toda minha vida acadêmica que tenho sede de conhecimento não vejo a hora de avançarmos mais... Segundo professor " Fazer algorítimos é como andar de bicicleta, não adianta eu falar pra vocês como é, vocês devem andar para saber" se depender disso. estou bem. na aula de hoje vimos mais a parte teórica,duvidas iram surgir na medica e que mais exercícios forem feitos mais a principio não vejo nenhuma dificuldade. Essa nova estrutura abre mais um leque de possibilidade e isso eh muito bom.


Aula 5 - 20.04.2011 - Utilizando o VirtualG

Na aula de hoje conhecemos e aprendemos a utilizar este software muito bem bolado chamado VirtualG, a magia de ter seu algoritmo entendido pelo computador e fantástica. consegui sem grandes problemas fazer as operações e estou ansioso pra saber o que vem por ae.

Abaixo exercícios...
1) Sabendo-se que:
1 pé = 12 polegadas
1 jarda = 3 pés
1 milha = 1.760 jardas
Faça um programa que receba uma medida em pés, faça as conversões a seguir e mostre os resultados em:
a) polegadas    b) jardas    c) milhas

var
  pes,polegadas, jardas,milha: real
inicio
  escrevald("digite o valor")
  leia(pes)
  polegadas<-(pes*12)
  jardas<-(pes/3)
  milha<-(jardas/1760)
  escreval("   ")
  escreval("Polegadas",polegadas)
  escreval("Jardas",jardas)
  escreval("Milhas",milha)
  escreval("   ")
  escreval ("Obrigado por usar este software.")
fim

   Download 



2) Faça um programa que receba o ano de nascimento de uma pessoa e o ano atual, calcule e mostre:
    a) a idade dessa pessoa;
    b) quantos anos essa pessoa terá em 2010

var
 ano_nac,ano_atual,idade,idade2:real
inicio
  escreval("Digite ano de nascimento")
  leia(ano_nac)
  escreval("Digite o ano Atual")
  leia(ano_atual)
  idade<-(ano_atual-ano_nac)
  idade2<-(2010-ano_nac)
  escreval("Sua Idade é: ",idade)
  escreval("Em 2010 você terá: ",idade2)
fimalgoritmo




3) O custo ao consumidor de um carro novo é a soma do preço de fábrica com o percentual de lucro do distribuidor e dos impostos aplicados ao preço de fábrica. Faça um programa que receba o preço de fábrica de um veículo, o percentual de lucro do distribuidor e o percentual de impostos. Calcule e mostre:
    a) o valor corespondente ao lucro do distribuidor;
    b) o valor correspondente aos impostos;
    c) o preço final do veículo.



algoritmo "exercicio3"
var
   preco,percentual,imposto,resp1,resp2,resp3:real
inicio
  escreval("Digeite o Preço de Fabrica")
  leia(preco)
  escreval("Digite o percentual de lucro do distribuidor")
  leia(percentual)
  escreval("Digite o Percentual de Impostos")
  leia(imposto)
  resp1<-(preco*percentual/100)
  resp2<-(preco*imposto/100)
  resp3<-(preco+resp1+resp2)
  escreval("O valor de lucro do distribuidor é: ",resp1)
  escreval("O valor de impostos é: ",resp2)
  escreval("O preço final é: ",resp3)
fimalgoritmo 




4) Pedro comprou um saco de ração com peso em quilos. Pedro possui dois gatos para os quais fornece a quantidade de ração em gramas. Faça um programa que receba o peso do saco de ração e a quantidade de ração fornecida para cada gato. Calcule e mostre quanto restará de ração no saco após cinco dias.



algoritmo "exercicios4"
var
   kg,dada,dada2,conversao,gatos,resp1,gatos2,resp3:real
inicio
  escreval("Qual o peso do saco de ração")
  leia(kg)
  escreval("Qual a quantidade de ração dada primeiro gato?")
  leia(dada)
  escreval("Qual a quantidade de ração dada segundo gato?")
  leia(dada2)
  conversao<-(kg*1000)
  gatos<-(dada+dada2)
  gatos2<-(gatos*5)
  resp1<-(conversao-gatos2)
  resp3<-(resp1/1000)
  escreval("Despois 5 dias você tera ",resp3)
fimalgoritmo






5) Cada degrau de uma escada tem X de altura. Faça um programa que receba essa altura e a altura que o usuário deseja alcançar subindo a escada. Calcule e mostre quantos degraus o usuário deverá subir para atingir seu objetivo, sem se preocupar com a altura do usuário.



algoritmo "exercicios5"
var
   dgrau,objetivo,resp1,conversao:real
inicio
 escreval(" Digite a altura do degrau em centimetros? ")
 leia(dgrau)
 escreval(" Digite a altura que dezeja chegar? ")
 leia(objetivo)
 conversao<-(dgrau/100)
 resp1<-(objetivo/conversao)
 escreval(" Você devera subir ",resp1,"  dgraus ")
fimalgoritmo






6) Faça um programa que calcule e mostre a área de um losango.
Sabe-se que A = (diagonal maior * diagonal menor)/2



algoritmo "exercicios6"
var
  diagonal_maior,diagonal_menor,resp1:real
inicio
 escreval ("Digite a diagonal maior")
  leia(diagonal_maior)
  escreval("Digite a diagonal menor")
  leia(diagonal_menor)
  resp1<-(diagonal_maior*diagonal_menor/2)
  escreval("area do losango é",resp1)
fimalgoritmo





7) Faça um programa que receba o ano de nascimento de uma pessoa e o ano atual, calcule e mostre:
    a) a idade dessa pessoa em anos;
    b) a idade dessa pessoa em meses;
    c) a idade dessa pessoa em dias;
    d) a idade dessa pessoa em semanas.



algoritmo "exercicios7"
var
 ano_nascimento,ano_atual,idade_anos,idade_meses,idade_dias,idade_semanas:real
inicio
  escreval("Qual seu ano de nascimento?")
  leia(ano_nascimento)
  escreval("qual seu ano atual?")
  leia(ano_atual)
  idade_anos<-(ano_atual-ano_nascimento)
  idade_meses<-(idade_anos*12)
  idade_dias<-(idade_meses*365)
  idade_semanas<-(idade_dias/7)
  escreval("Sua idade em anos é ",idade_anos)
  escreval("Sua idade em meses é ",idade_meses)
  escreval("Sua idade em dias é  ",idade_dias)
  escreval("Sua idade em semanas é ",idade_semanas)
fimalgoritmo






8) Faça um programa que receba a quantidade de dinheiro em reais e converta esse valor em dólar, marco alemão e libras esterlinas. Sabe-se que a cotação do dólar é de R$ 1,66, do marco alemão é de R$ 2,00 e da libra esterlina é de R$ 1,57. O programa deve fazer a conversão e mostrá-las.



algoritmo "exercicios8"
var
 reais,dolar,libra,marco :real
inicio
  escreval("Digite o Valor em reais")
  leia (reais)
  dolar<-(reais/1.66)
  marco<-(reais/2)
  libra<-(reais/1.57)
  escreval("Dolar=",dolar)
  escreval("Marco Alemão=",marco)
  escreval("Libras esterlinas=",libra)
fimalgoritmo





     






Aula 4 - 13/04/2011 - Exercicios sobre criação de algoritimos



Durante a aula de hoje, continuamos realizando os exercicios propostos nos slides da ultima aula.

01. FAÇA UM PROGRAMA QUE RECEBA TRÊS NOTAS, CAUCULE E MOSTRE A MEDIA ARITIMÉTICA ENTRE ELAS:

algoritimo_media
var: n1,n2,n3,ma:real

inicio
leia (n1,n2,n3)
ma<- [(n1+n2+n3)/3]
escreva (ma)
fim
-------------------------------------------
## Teste de Mesa ##
n1 =15
n2 = 20
n3= 30

ma = 15+20+30/3 = 45
===================================================================
02. FAÇA UM PROGRAMA QUE RECEBA TRÊS NOTAS E SEUS RESPECTIVOS PESOS, CALCULE E MOSTRE A MÉDIA PONDERADA DESSAS NOTAS.

algoritimo_mediap
var: n1, n2, n3, p1, p2, p3, soma_media, np1,np2 ,np3, media_geral:real

inicio
leia (n1, n2, n3, p1, p2, p3 );
soma_media <- (p1+p2+p3);
np1 <- [(n1*p1)/soma_media];
np2 <- [(n2*p2)/soma_media];
np3 <- [(n3*p3)/soma_media];
media_geral <- [np1+np2+np3);
escreva ("media_geral);
fim
--------------------------------------------------
## Teste de mesa ##

n1=60 p1=4
n2=70 p2=3
n3=75 p3=4
soma_media = 10

60*4/10=24
70*3/10=21
75*4/10= 30

media podenrada = 24+21+30= 75
======================================================================

03. FAÇA UM PROGRAMA QUE RECEBA O SALÁRIO DE UM FUNCIONARIO, CAUCULE E MOSTRE O NOVO SALÁRIO SABENDO-SE QUE ESTE SOFREU UM AUMENTO DE 20%.

algoritimo_salario
var: salario_antigo, salario_reajustado = real

incio
leia (salario_antigo)
salario_reajustado <- [(salario_antigo*0,20)+salario_antigo]
escreva (salario_reajustado)
fim
-----------------------------------
## Teste de mesa ##

salario_antigo = 650

salario reajustado = [(650*0,20)+650]
salario reajustado = 780

=======================================================================

04. FAÇA UM PROGRAMA QUE RECEBA O SALARIO DE UM FUNCIONARIO E O PERCENTUAL DE AUMENTO, CALCULE E MOSTRE O VALOR DO AUMENTO E O NOVO SALARIO.

algoritimo_salario2
var: salario_antigo, percentual, salario_novo, valor_aumento:real

incio
leia (salario_antigo,percentual)
valor_aumento <-[(salario_antigo*percentual)/100]
salario_novo <- [salario_antigo+valor_aumento)
escreva ( salario_novo,valor_aumento)
fim

---------------------------------------------
## Teste Mesa ##

salario_antigo=600
percentual=20

valor_aumento = [(600*20)/100] = 120
salario_novo = [600+1200 = 720



=======================================================================
05. FAÇA UM PROGRAMA QUE RECEBA O SALARIO BASE DE UM FUNCIONARIO, CAUCULE E MOSTRE O VALOR A RECEBER, SABENDO-SE QUE ESTE FUNCIONARIO TEM UM GRATIFICAÇÃO DE 5% SOBRE O SALARIO BASE E PAGA DE IMPOSTO 7% SOBRE O SALARIO BASE.

algoritimo_salario3
var: salario_base, desconto_imposto, gratificacao, salario_final = real

incio
leia(salario_base)
desconto_imposto <- [(salario_base*7)/100]
gratificacao <- [(salario_base*5)/100]
salario_final <- [(salario_base-desconto_imposto)+gratificacao]
escreva (salario_final)
fim
------------------------------------
## Teste Mesa ##

salario base = 600
desconto imposto = [(600*7)/100] = 42
gratificacao = [(600*5)/100] = 30
salario_final = [(600-42)+30] = 588.
 
01. FAÇA UM POGRAMA QUE CAUCULE A MOSTRE A AREA DE UM LOSANGO. SABENDO-SE A = DIAGONAL MAIOR*DIAGONAL MENOR / 2


algoritimo_losango
var: area, diagonal_maior, diagonal_menor

inicio
leia ( diagonal_maior, diagonal_menor);
area <- [(diagonal_maior*diagonal_menor)/2];
escreva (area);

fim

-------------------------------------------------------------
## Teste de Mesa##

diagonal_maior = 5
diagonal_menor = 4
area = [(5*4)/2] = 1



=====================================================================


02. FAÇA UM PROGRAMA QUE RECEBA O ANO DE NACSIMENTO DE UMA PESSOA E O ANO ATUAL E MOsTRE.



A IDADE DA PESSOA EM ANOS.

A IDADE DESSA PESSOA EM MESES

A IDADE DESSA PESSOA EM DIAS

A IDADE DESSA PESSOA EM SAMANAS


algoritimo_anos
var: ano_nascimento, ano_atual, idade_anos, idade_meses, idade_dias, idade_semanas:real

inicio
leia (ano_nascimento,ano_atual);
idade_anos <- (ano_atual - ano_nascimento);
idade_meses <- (idade_anos*12);
idade_dias <- (idade_meses*365);
idade_semanas <- (idade_dias/7)
escreva ( "Idade Anos" idade_anos);
escreva ( "Idade Meses" idade_meses)
escreva ( "Idade Dias" idade_dias);
escreva ( " Idade Semanas" idae_semanas);

fim

------------------------------------------

## Teste de Mesa##

ano_nascimento = 1989
ano_atual = 2011
idade_anos <- (2011-1989)=22 anos
idade_meses <- (22*12)=264 meses
idade_dias <- (264*365)=96360 dias
idade_semanas <- (96360/7) = 13765,71semanas



======================================================================
03. FAÇA UM PROGRAMA QUE RECEBA A QUANTIDADE DE DINHEIRO EM REIAS E CONVERTA ESSE VALOR EM DOLAR, MARCO ALEMÃO E LIBRAS ESTERLINAS, SABE-SE QUE A CONTAÇÃO DO DOLAR É 1,80, DO MARCO ALEMÃO É 2 E DA LIBRA ESTERLINA É 1,57 O PROGRAMA DEVE FAZER A CONVERSAR E MOSTRALA.

algoritimo_cambio
var: valor_reais


incio

ler (valor-reais)

valor_dolar <- ( valor_reais*1,8)
valor_marco <- (valor_reais*2)
valor_libra <- (valor_reais*1,57)
escreva ("valor em Dolar"valor_dolar);
escreva ("Valor em Marco Alemão"valor_marco)
escreva ("Valor em Libras Esterlinas" valor_libra)

fim

---------------------------------------

##Teste Mesa##
valor reias = 50
valor_dolar = (50*1,8) = 90
valor_marco =(50*2) = 100
valor_libra = (50*1,57) = 78,5

==================================================


 Na aula de hoje, consegui na pratica intender a maneira de montar e de pensar na hora de criar um algoritmo. depois de muitos exercícios que alem de exercitar a lógica ajudou a decorar os passos da criação. Em fim a partir desta aula não preciso me preocupar mais em criar o algoritmo pois isso já sei, basta me focar em resolver o problema.



Aula 3 - 06/4/2011 - Métodos de construção de algoritimos




Através de slides aprendemos os métodos de construção para algoritmos, regras e conceitos.
Alguns exercícios foram feitos em sala e corrigidos a seguir, nesta aula também foi nos passado o nosso mais novo 'tema de casa'  fazer um webfólio das aulas.
Abaixo segue slides passados em aula:


  



Abaixo dois exercícios realizados em aula:

1. Especificar um algoritmo para calcular e exibir na tela a área de um triângulo de base b e altura h, em que os valores de b e de h são fornecidos pelo usuário via teclado.


Fluxograma
Narrativa
1º Digitar valores de b e h
2º Resolver [(b*h)/2]
3º Exibir resultado

Ver
  b,h,S = Real


Inico
  ler (b,h)
  S <= [(b*h)/2]
  escrever (S)
Fim
2. Compraram-se 30 canetas iguais, que foram pagas com uma nota de R$ 100,00, obtendo-se R$ 67,00 de troco. Quanto custou cada caneta?

Fluxograma
Narativa
Pegar CAN,PAG, TROC
Resolver RES=[(PAG-TROC)/CAN)
Exibir resultado


Ver
  CAN, PAG, TROC, RES = Real

Inico
  CAN <=30
  PAG <=100
  TROC <=67
  RES <= [(PAG-TROC)/CAN]
  Escrever (RES)
Fim



Acredito que na aula de hoje eu tenha dado o primeiro passo dentro deste novo mundo que e lógica e algoritimo, a primeira vista muito complicado e complexo, mais depois de quebrar a cabeça se torna mais simples, hoje aprendi  a montar um algoritmo completo, partindo da descrição narrativa, pseudocódigo, fazer um fluxograma e ainda a fazer o teste para ver se  o mesmo esta correto, outra questão bastante frisada foi deixar as variáveis com nomes reais para ser mais fácil para organizar e também para outra pessoa intender.