Nesse final de semana tivemos uma live muito interessante onde conversamos com o professor José Augusto Manzano que 'e autor de vários livros sobre programação. Nesta live debatemos sobre seus dois últimos livros que foram lançados pela editora Novatec; os livros sobre Rust e Lua.
O professor Augusto Manzano leu o chat e resolveu responder as perguntas feitas e que o tempo não nos permitiu que fossem respondidas (admiro como o professor é bem atencioso com todos). Confiram as respostas abaixo :)
Respostas há algumas questões do chat
Rafael Profeta: seletivo seria o Select case?
Resposta: Não "select case" é uma forma de decisão seletiva e não de laço seletivo. Veja um exemplo de laço seletivo escrito em Rust observando a linha em vermelho.
use std::io;
use std::io::prelude::*;
fn main() {
let mut tabuada = String::new();
let n: u8;
let mut i: u8;
let mut r: u8;
print!("Entre o valor da tabuada: ");
io::stdout().flush().unwrap();
io::stdin().read_line(&mut tabuada).unwrap();
n = tabuada.trim().parse::<u8>().u nwrap();
println!();
i = 1;
loop {
r = n * i;
println!("{:2} x {:2} = {:3}", n, i, r);
i += 1;
if i > 10 { break; }
}
println!();
print!("Tecle <Enter> para encerrar...");
io::stdout().flush().unwrap();
io::stdin().read(&mut [0u8]).unwrap();
}
A instrução "if i > 10 { break }" pode ser colocada em qualquer posição do bloco do laço "loop". Isso caracteriza o que se chama de decisão seletiva. Veja outros exemplos de laços seletivos escritos nas linguagens BASIC (Structured) e ADA respectivamente. Observe as linhas marcadas em negrito como ações seletivas, ou seja, que podem ser colocadas em qualquer posição do bloco DO/LOOP no BASIC e Loop/End loop em ADA.
Código BASIC
============
DIM R AS STRING
DIM N AS INTEGER
DIM X AS INTEGER
DIM I AS INTEGER
I = 1
DO
PRINT USING "Entre valor ##"; I
INPUT "-> ", N
X = N * 3
PRINT USING "Resultado = ###"; X
PRINT
INPUT "Deseja continuar? (S) p/ Sim, qualquer letra p/ Nao: ", R
PRINT
IF (UCASE$(R) <> "S") THEN EXIT DO
I = I + 1
LOOP
END
Código ADA
==========
With Ada.Integer_Text_IO; Use Ada.Integer_Text_IO;
With Ada.Characters.Handling; Use Ada.Characters.Handling;
Procedure Exemplo is
R : Character;
X : Integer;
N : Integer;
I : Integer;
Begin
I := 1;
Loop
Put("Entre valor:"); Put(Integer'Image(I));
Put(" -> "); Get(N);
X := N * 3;
Put("Resultado = "); Put(Integer'Image(X));
New_Line(2);
Put("Deseja continuar? (S) p/ Sim, qualquer letra p/ Nao: ");
Get(R);
New_Line;
Exit When (To_Upper(R) /= 'S');
I := I + 1;
End Loop;
End Exemplo;
Glider Space: ninguém fala de HOPE heheh Mas acho que ele conhece a linguagem.
Resposta: O livro de HOPE será publicado nos próximos 10 dias no Clube de Autores. Sou professor no Instituto Federal de São Paulo lotado na Cidade de Campos do Jordão.
Reuter Junior: depois passa o link do seu site novamente para eu ler o artigo
Resposta: Meu site www.manzano.pro.br ou http://novo.manzano.pro.br/wp/ downloads/ acessar o link Aprenda a programar em dez anos de Peter Norvig (texto traduzido para língua portuguesa).
OpenSourceBoy: E sobre Haskell?
Resposta: Haskell é uma linguagem de programação funcional em estilo puro, muito madura e com grande número de usuários em todo o mundo. Do paradigma funcional é uma das linguagens mais conhecidas.
Nenhum comentário:
Postar um comentário
Viu algum erro e quer compartilhar seu conhecimento? então comente aí.
Observação: somente um membro deste blog pode postar um comentário.