Programação para Redes de Computadores (técnico) (diário 2012-2)

De MediaWiki do Campus São José
Revisão de 17h40min de 5 de novembro de 2012 por Etorresini (discussão | contribs) (→‎Avaliação)
Ir para navegação Ir para pesquisar

Endereço encurtado: http://bit.ly/prc20122

Avaliação

São 4 avaliações, uma por mês - sem data pré-estabelecida:

  • Outubro
  • Novembro
  • Dezembro
  • Março

O conceito final da disciplina é elaborado da seguinte forma:

  • A: todas as avaliações em A.
  • B: no máximo 1 C.
  • C: no máximo 1 D, e para cada D no mínimo um B correspondente.
  • D: demais casos.

Aulas

08/10

  • Teste de conhecimento 1: instalação manual do Portugol.
  • Sobre a matéria: entendimento de do sistema computacional de Von Neumann.

Um número é primo? Em Portugol:

inicio

// Entrada de dados
escrever "Por favor, escreva um número inteiro: "
inteiro dividendo
ler dividendo

// Processamento
inteiro divisor
inteiro divisores
inteiro resto
divisores <- 0
para divisor de (dividendo - 1) até 2 passo -1
    escrever "."
    resto <- dividendo % divisor
    se resto = 0 então
        divisores <- divisores + divisor
    fimSe
próximo
texto resposta
se divisores > 0 então
    resposta <- " não é primo."
senão
    resposta <- " é primo."
fimSe

// Saída de dados
escrever "Calculei que ", dividendo, resposta

fim

E se for perfeito? O que muda no código anterior?

15/10

  • Teste de conhecimento: Matemática básica aplicada.
  • Sobre a matéria: tipos de funções ou procedimentos de um programa.

Um triângulo é pitagórico?

inicio

// Entrada de dados
inteiro a, b, c
escrever "Por favor, digite um número inteiro: "
ler a
escrever "Agora, outro número inteiro: "
ler b
escrever "E, por último, mais um número inteiro: "
ler c

// Processamento
inteiro a2
a2 <- potencia(a, 2)

inteiro b2c2
b2c2 <- potencia(b, 2) + potencia(c, 2)

texto resposta
se (a2 = b2c2) então
    resposta <- "é pitagórico."
senão
    resposta <- "não é pitagórico."
fimSe

// Saída de dados
escrever "O triângulo ", resposta

fim

Um número é potência de outro?

inicio

//Entrada de dados
texto resposta
inteiro numero
escrever "Por favor, digite um número inteiro: "
ler numero

// Processamento
real raizquadrada, resto
raizquadrada <- raiz(numero)
resto <- frac(raizquadrada)
se (resto > 0) então
    resposta <- "não é potência quadrada de outro número inteiro: "
senao
    resposta <- "é potência de: "
fimSe

// Saída de dados
escrever resposta, raizquadrada
fim

Outra forma (alternativa):

inicio

// Entrada de dados
inteiro numero
escrever "Por favor, digite um número inteiro: "
ler numero

// Processamento
texto resposta
inteiro respostaNumero
real expoente, resultado, rodada
para rodada de 2 ate 5 passo 1
    expoente <- 1 / rodada
    resultado <- potencia(numero, expoente)
    se (frac(resultado) = 0) então
        resposta <- "é potência de "
        respostaNumero <- int(resultado)
    fimSe
próximo

// Saída de dados
escrever resposta
escrever respostaNumero

fim

Desenhando uma "caixa" em volta de um número até 9999:

inicio

// Entrada de dados
inteiro numero
escrever "Por favor, digite SEMPRE um número inteiro: "
ler numero

// Processamento
inteiro colunas, linhaembranco
colunas <- 1
se (numero > 9) então
    colunas <- 2
fimSe
se (numero > 99) então
    colunas <- 3
fimSe
se (numero > 999) então
    colunas <- 4
fimSe
se (numero > 9999) então
    colunas <- 5
fimSe
colunas <- colunas + 4
linhaembranco <- colunas - 2

// Saída de dados
inteiro coluna
para coluna de 1 ate colunas passo 1
    escrever "!"
próximo
escrever "\n"

escrever "!"
para coluna de 1 ate linhaembranco passo 1
    escrever " "
próximo
escrever "!\n"

escrever "! ", numero, " !"
escrever "\n"

escrever "!"
para coluna de 1 ate linhaembranco passo 1
    escrever " "
próximo
escrever "!\n"

para coluna de 1 ate colunas passo 1
    escrever "!"
próximo

fim

22/10

Como "descobrir" que número o usuário digitou? Usando árvore!

inicio

// Entrada de dados
inteiro numero
texto resultado

escrever "Por favor, digite um número inteiro entre 0 e 7: "
ler numero

// Processamento
se numero > 3.5 então
    se numero > 5.5 então
        se numero > 6.5 então
            resultado <- "7"
        senão
            resultado <- "6"
        fimSe
    senão
        se numero > 4.5 então
            resultado <- "5"
        senão
            resultado <- "4"
        fimSe
    fimSe
senão
    se numero > 1.5 então
        se numero > 2.5 então
            resultado <- "3"
        senão
            resultado <- "2"
        fimSe
    senão
        se numero > 0.5 então
            resultado <- "1"
        senão
            resultado <- "0"
        fimSe
    fimSe
fimSe
  
// Saída de dados
escrever "O número é ", resultado , "."
fim

... ou caso a caso (meio óbvio, mas estamos ainda no terceiro dia de aula, ok? :):

inicio

// Entrada de dados
inteiro numero
texto resultado

escrever "Por favor, digite um número inteiro entre 0 e 7: "
ler numero

// Processamento
escolhe numero
    caso 9:
        resultado <- "9"
    caso 8:
        resultado <- "8"
    caso 7:
        resultado <- "8"
    caso 6:
        resultado <- "6"
    caso 5:
        resultado <- "5"
    caso 4:
        resultado <- "4"
    caso 3:
        resultado <- "3"
    caso 2:
        resultado <- "2"
    caso 1:
        resultado <- "1"
    defeito:
        resultado <- "0"
fimEscolhe
  
// Saída de dados
escrever "O número é ", resultado , "."
fim

29/10

Lembra como descobrir se um número é primo? Outra forma:

inicio

inteiro dividendo
escrever "Por favor, digite um número inteiro: "
ler dividendo

inteiro divisores, divisor
real resto
divisores <- 0
para divisor de 2 até (dividendo -1) passo 1
    resto <- dividendo % divisor
    se resto = 0 então
        divisores <- divisores + 1
        escrever "(",divisor,")"
    senão
        escrever "."
    fimSe
próximo

escrever "\nO número ", dividendo, " possui ", divisores, " divisores."
fim