Algoritmo e Programação

Algoritmo e Programação

(Parte 1 de 10)

Algoritmos e Programação de Computadores

Norton Trevisan Roman norton@ic.unicamp.br http://www.ic.unicamp.br/~norton/

Material obtido na Internet e editado com autorização do autor através de e-mail disponibilizado na próxima página

Prof. José Garibaldi de Carvalho zegariba@gmail.com

Data:Wed, 23 Jun 204 01:0:26 +010 De: ntr <Norton.Roman@itri.brighton.ac.uk>

Para: gariba@colegiosantanh.com.br Assunto: Apostilas disponibilizadas

Aliás, me chamou a atençãoa apostila de grafos também é minha... tá errado no site (o link

Boa noite. Bom, não posso responder pelos outros, mas da minha parte, tu podes usá-la à vontade.

leva à minha página...) enfim, acredito que queiras a apostila de Pascal. Então não há problema algum. E se quiser a de grafos, pode usar também.

p.s. Por um lapso meu, a apostila não está completamas na página principal da disciplina, eu
p.s2. Gostaria muito de receber qualquer comentário sobre elapartes que não estão claras,

Abraço Norton indico o que está completo e o que não está. Consulte: http://www.dcc.unicamp.br/~norton/paginas/mc102/mc102.html . erros etc. Isso ajudaria muito a melhorá-la. Obrigado.

Prezados Professores:

Sou professor do curso Técnico de Informática (segundo grau) do Colégio Santa Catarina em Novo Hamburgo - RS. Ministro as disciplinas de Algoritmos e Lógica e Programação.

Nosso colégio participou da Olimpíada 2004 na modalidade programação. Na página disponibilizada pela OBI, encontram-se apostilas (excelentes) elaboradas pelos Senhores.

Minha pergunta é: Existe a possibilidade de as utilizarmos (impressas - resguardando autoria) com os alunos do Colégio em nossas aulas?

Desde já agradeço pela atenção.

Prof. José Garibaldi de Carvalho mail: gariba@colegiosantanh.com.br

Colégio Santa Catarina Rua General Osório, 729 Cep: 93510-160 Novo Hamburgo - RS Fone: (51) 527-4862

INTRODUÇÃO5
ESTRUTURA DE UM PROGRAMA5
COMENTÁRIOS5
SAÍDA6
PROCEDIMENTOS9
IDENTIFICADORES1
EXPRESSÕES12
VARIÁVEIS15
ATRIBUIÇÕES15
O COMANDO FOR18
ITERAÇÃO21
LAÇOS ANINHADOS24
ITERAÇÕES ANINHADAS25
DOWNTO26
RECURSÃO29
MEMÓRIA DINÂMICA37
LISTAS LIGADAS42
FILAS54
PILHAS54
ARQUIVOS DE ACESSO SEQÜENCIAL56
STRINGS67
VETORES (ARRAY)72
MATRIZES79
BUSCA BINÁRIA84
REGISTROS8
TIPOS ENUMERADOS98
PRED E SUCC100
O COMANDO CASE102
TIPO SUBRANGE (INTERVALO)107
TYPE108
FUNÇÕES1
PASSAGEM DE PARÂMETROS116
POR VALOR E REFERÊNCIA116
VARIÁVEIS LOCAIS E GLOBAIS124
PROCEDIMENTOS128
DIAGRAMAS DE EXECUÇÃO130
ENTRADA E SAÍDA135
CARACTERES136
LENDO E ESCREVENDO CARACTERES137
CARACTERES E A TABELA ASCII140
TABELA ASCII143
O COMANDO REPEAT145
O COMANDO WHILE148
TIPO BOOLEAN153
OPERADORES BOOLEANOS154
TIPO REAL155
CONVERSÃO DE TIPOS156
ELSE160
AND162
OR162
ANIMAÇÃO BÁSICA164
ENTRADA168

Para a parte prática do curso, a linguagem ensinada é o Pascal. A partir de agora, as notas de aula se destinarão ao aprendizado desta linguagem. Todos os programas apresentados aqui funcionam corretamente se compilados usando o Pascal

PROGRAM nome;
{declarações}
BEGIN
{comandos}
END.

A estrutura de um programa pascal é a seguinte:

"PROGRAM nome" dá um nome ao programa, enquanto que "BEGIN" avisa o computador onde começa o programa e "END" onde termina.

A parte de "{declarações}" será vista mais tarde. Já "{comandos}" deve conter os comandos a serem executados no programa (vistos a seguir). No caso acima, como não há nenhum comando no corpo do programa (espaço entre o BEGIN e o END), nosso programa não executa nada.

Comentários são observações que o programador faz no código do programa para poder entendê-lo melhor mais tarde, ou permitir que outros possam entender mais facilmente o programa. É parte da documentação do programa.

Em Pascal há 2 formas de escrevermos comentários:

Entre (* e *) Entre { e }

Assim, as palavras "declarações" e "comandos" no código acima são comentários. Uma observação importante sobre comentários é que você não precisa "casar" os { ou (*. O computador, ao encontrar um { ou (* ignora o que vem após até encontrar um } ou *) (se você abriu com (*, ele ignora até encontrar um *) e se abriu com { até encontrar um

Assim, {{{{comentário} está certo, enquanto que {{com}} está errado, pois o primeiro } é suficiente para terminar o comentário, e o segundo será visto como erro.

A saída de dados padrão é a tela do computador. Então, agora vamos ver como escrever mensagens na tela da máquina.

Para escrever algo na tela usamos o comando "write" ou "writeln". Write escreve a mensagem pura e simplesmente, enquanto que writeln escreve a mensagem e pula para a linha de baixo.

Considere, então o seguinte programa:

BEGIN

PROGRAM escreve; write('alô');

END.

write('você');

alôvocê

Sua saída será:

Notou a falta do espaço? Poi é, ele precisa ser explicitamente incluído:

BEGIN
write('alô ');

PROGRAM escreve;

END.

write('você');

alô você

Sua saída será:

Agora, qual a diferença entre write e writeln? Vejamos o mesmo programa com writeln:

BEGIN
writeln('alô ');
END.

PROGRAM escreve; writeln('você');

alô

Sua saída será: você

Notou? um em cada linha. O comando writeln pode também ser usado para incluir uma quebra de linha, assim:

BEGIN
write('alô ');

PROGRAM escreve; writeln;

write('você');
END.
alô
você

Gera:

PROGRAM escreve;
BEGIN
writeln('alô ');
write('você');
END.

E: writeln;

alô
você

Gera:

Podemos também combinar os comandos:

BEGIN
write('alô ');
writeln('você');
write('aí!');
END

PROGRAM escreve;

alô você
aí!

E teremos:

Uma consideração final: e se quisermos imprimir a aspa simples (')? Como vimos, ela é parte integrante do write e writeln. Para imprimir uma aspa simples precisamos usar duas aspas simples. Assim:

PROGRAM escreve;
BEGIN
write('''');
'

Escreverá na tela:

PROGRAM escreve;
BEGIN
write('copo d''água');
END.

Ou seja:

Escreverá na tela: copo d'água

(Parte 1 de 10)

Comentários