Algoritmo em VisualG indica se esta apta ou não para serviço militar

Algoritmo em VisualG que ler os dados de N pessoas (nome, sexo, idade e saúde) e informe se está apta ou não para o serviço militar obrigatório.

algoritmo "ServM"
// Função: Apta para serviço militar
// Autor : Airton Almeida
// Data : 25/11/2013
// Seção de Declarações 
var
programa, idade, apto: inteiro
nome, sexo, saude, opc: caractere
totApto, total: inteiro
inicio
// Seção de Comandos 
programa <- 1
enquanto programa = 1 faca
    limpatela
    apto <- 1
    saude <- "B"
    total <- total + 1
    escreva("Digite o nome: ")
    leia(nome)
    escreva("Digite o sexo (M/F): ")
    leia(sexo)
    escreva("Digite a idade: ")
    leia(idade)
    se idade < 18 entao
        apto <- 0
    fimse
    escreval("Digite o estado de saúde: ")
    escreva("(B) Bom - (R) - Ruim - ")
    leia(saude)
    se saude = "R" entao
        apto <- 0
    senao
        se saude <> "B" entao
            apto <- 0
        fimse
    fimse
    se apto = 1 entao
        totApto <- totApto + 1
    fimse
    escreval("Deseja continuar filtrando (S/N)? ")
    leia(opc)
    se opc = "N" entao
        programa <- 0
    fimse
fimenquanto
limpatela
escreval("Resumo geral: ")
escreval("Foram filtrados: ",total," pessoas")
escreval("Aptos: ",totApto)
escreval("")

fimalgoritmo

Algoritmo de Euclides estendido *

O Algoritmo de Euclides é uma das formas de se encontrar o MDC – máximo divisor comum de dois números inteiros. O MDC é uma combinação linear destes dois números. O Algoritmo de Euclides estendido, ao invés de retornar um valor único, fornece a combinação linear, muito útil quando os inteiros são primos entre si. Por exemplo:

MDC(120,23) = 1
    120 e 23 são números inteiros, primos entre si porque não existe um divisor maior
    do que 1 que divida ambos.

    O Algoritmo de Euclides estendido retorna ax + by = MDC(a, b), ou seja,
    120*-9 + 23*47 = MDC(120,23)

Um pouco de álgebra para entender o Algoritmo de Euclides estendido

Para encontrar o MDC(120,23) usando o Algoritmo de Euclides, procede-se da seguinte forma:

(1)     120/23 = 5 resta 5
    (2)      23/5  = 4 resta 3
    (3)       5/3  = 1 resta 2
    (4)       3/2  = 1 resta 1
              2/1  = 2 resta 0
    MDC(120,23) = 1

Levando-se em conta apenas os restos encontrados, pode-se dizer que:

(1)     5 = 1*120 - 5*23

    (2)     3 = 1*23 - 4*5 ................ e, como 5 = 1*120 - 5*23
            3 = 1*23 - 4(1*120 - 5*23)
            3 = -4*120 + 21*23

    (3)     2 = 1*5 - 1*3 ................. como 5 = 1*120 - 5*23 e
                                                 3 = -4*120 + 21*23
            2 = 1(1*120 - 5*23) - 1(-4*120 + 21*23)
            2 = 5*120 - 26*23

    (4)     1 = 1*3 - 1*2
            1 = 1(-4*120 + 21*23) - 1(5*120 - 26*23)
            1 = -9*120 + 47*23

    portanto, x = -9 e y = 47 e -9*120 + 47*23 = MDC(120,23)

Por: vovó Vicki

Lógica de Programação

A lógica da programação é a primeira coisa que deve ser estudada se você quiser se tornar um bom programador, seja qual for a linguagem. Porque ela é tão importante? Imagine que agora você é um soldado que recebe ordens e as coloca em prática. O seu capitão lhe diz: “Soldado, sua missão é encontrar a arma principal do inimigo e sabotá-la, como também fazer o reconhecimento do local. Assim que você se infiltrar, vai procurar colher o máximo possível de informações. No entanto, antes das 14:00 deve sair do local. Se observar alguma movimentação suspeita, saia imediatamente. E lembre-se, sua missão principal é encontrar a arma principal do inimigo e sabotá-la.” Nessa missão, o soldado precisa sempre se lembrar das ordens do capitão, e para que ela seja bem sucedida é necessário ele aplicar todas elas. Vamos analisar essa missão:

Objetivos principal: Encontrar e sabotar a arma principal do inimigo.
Objetivo secundário: Colher o máximo de informações possíveis.
Condições: O soldado só vai terminar a missão com êxito se: Não houver nenhuma movimentação suspeita, que faça com que ele saia do local antes do horário, e, caso isso não ocorra, ele deve sair de lá sem falta as 14:00.

Continue reading Lógica de Programação

Algoritmo em VisualG que executa os seguintes testes lógicos:

(a) Verifica se o numero é par ou ímpar
(b) Verifica se o numero é positivo ou negativo
(c) Verifica se o numero é divisível(multiplo) ou não de 3
(d) Verifica se o numero é divisível(multiplo) ou não de 4
(e) Verifica se o numero é divisível(multiplo) ou não de 5
(f) Verifica se o numero é divisível(multiplo) ou não de 7
(g) Verifica se o numero esta dentro ou fora da faixa de +10 a +100

Ex: Se for digitado o valor -35 a saída será:

Este numero é ímpar
Este numero é negativo
Este numero não é múltiplo de 3
Este numero não é múltiplo de 4
Este numero não é múltiplo de 5
Este numero não é múltiplo de 7
Este numero não esta na faixa de +10 a +100

Continue reading Algoritmo em VisualG que executa os seguintes testes lógicos:

Algoritmo em visualg para calcular média de notas

Algoritmo em visualg que calcula média de três notas do aluno e informa se o mesmo esta ou não aprovado.

//algoritmo “SNA”
// Função : Verificar se o aluno foi aprovado
// Autor : Airton Almeida
// Data : 11/12/2012
// Seção de Declarações
var
nota1,nota2,nota3,media : real
aluno : caracter
inicio
nota1 := 11
nota2 := 11
nota3 := 11
escreva(“Digite o nome do aluno: “)
leia(aluno)
escreval(“————————————————-”)
enquanto nota1 > 10 faca
     escreva(“Entre com a Nota 01: “)
    leia(nota1)
fimenquanto
enquanto nota2 > 10 faca
     escreva(“Entre com a Nota 02: “)
     leia(nota2)
fimenquanto
enquanto nota3 > 10 faca
     escreva(“Entre com a Nota 03: “)
     leia(nota3)
fimenquanto
media <- (nota1+nota2+nota3)/3
escreval(“——————————————–”)
se media < 7 entao
       escreval(“O aluno “,aluno,” foi reprovado por ter tirado a média de: “,media)
   senao
     escreval(“O aluno “,aluno,” foi aprovado com nota média de: “,media)
fimse
escreval(“——————————————–”)
fimalgoritmo

Tendo um tempinho, assista a este vídeo.