laboratório de programação (dpadf 0063) -...
TRANSCRIPT
![Page 1: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/1.jpg)
Laboratório de Programação
(DPADF 0063)Aula 1 – Motivação e Introdução
Universidade Federal de Santa Maria
Colégio Agrícola de Frederico Westphalen
Curso Superior de Tecnologia em Sistemas para Internet
Prof. Bruno B. Boniati – www.cafw.ufsm.br/~bruno
![Page 2: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/2.jpg)
Objetivos
• Formular soluções para os algoritmos
propostos, visando à obtenção dos resultados
por computador. Escrever programas, utilizando
uma linguagem de programação imperativa.
Apresentar a estrutura e a funcionalidade de
linguagens de programação.
![Page 3: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/3.jpg)
Programa
I. Introdução à Programação de Computadores;
II. Características Básicas de uma Linguagem de Programação;
III. Tipos de Dados;
IV. Entrada e Saída de Dados;
V. Formatação e posicionamento de tela;
VI. Elementos fundamentais de controle;
VII. Funções e comandos internos de uma Linguagem de Programação;
VIII.Modularização;
IX. Tipos de dados estruturados;
X. Arquivos.
![Page 4: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/4.jpg)
Material de Aula
• Apostila:
• Página da Disciplina:www.cafw.ufsm.br/~bruno/disciplinas/lab_programacao
• Recomenda-se a utilização de um caderno e um pen-drive
![Page 5: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/5.jpg)
Avaliação (individual)
• Avaliação 1 (50% do semestre)
▫ Sistematização 1 (Peso 30%)
▫ Trabalho 1 (Peso 20%)
• Avaliação 2 (50% do semestre)
▫ Sistematização 2 (Peso 30%)
▫ Trabalho 2 (Peso 20%)
• Pontuação extra (pela participação em aula, resolução de
exercícios e entrega de exercícios desafio)
![Page 6: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/6.jpg)
Laboratório de Programação
(DPADF 0063)Aula 1 – Motivação e Introdução
Universidade Federal de Santa Maria
Colégio Agrícola de Frederico Westphalen
Curso Superior de Tecnologia em Sistemas para Internet
Prof. Bruno B. Boniati – www.cafw.ufsm.br/~bruno
![Page 8: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/8.jpg)
Antes de mais nada ...
• Estude ... estude ... estude ...
• Quanto tiver absorvido uma boa
quantidade de informações ...
• Coloque-a em prática.
![Page 9: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/9.jpg)
Arrume um computador ...
• Isso não significa comprar um computador
(embora isso possa ser um investimento
interessante em você);
• Para aprender a programar você não precisa de
um computador de última geração;
• Computador lento não é uma desculpa válida
para não programar;
• Para aprender a programar não é necessário
gastar com aquisição de software;
![Page 10: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/10.jpg)
Antes de começar a programar
• Se antes de ser um bom programador você
precisa ao menos ser um programador;
• Antes de ser um programador você precisa ser ao
menos um bom usuário;
• Tente descobrir como as coisas funcionam e os
motivos para funcionarem dessa forma.
• A maior virtude de um programador é a
curiosidade, querer saber como as coisas
funcionam.
![Page 11: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/11.jpg)
Se você tem dificuldade
para configurar uma
impressora ou para criar
um usuário é bem capaz
que você tenha mais
dificuldade do que o
normal para programar,
uma vez que estará
programando uma
máquina/sistema com a
qual você não conhece.
![Page 12: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/12.jpg)
Começando a programar ...
• Aprenda uma linguagem de programação!
• Mas qual? Resposta: QUALQUER UMA.
▫ Não importa a linguagem e sim o seu empenho.
• Uma boa forma para escolher uma linguagem é
pela quantidade de informação disponível que
você encontrar sobre ela;▫ A coisa mais importante para aprender alguma coisa é
conseguir informações sobre aquilo que se está
estudando, e com programação não é diferente.
![Page 13: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/13.jpg)
por Rodrigo Strauss
![Page 14: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/14.jpg)
Falta de dinheiro ...
Você acha que, se eu tivesse dinheiro
para ter um carro com 18 anos, eu
passaria madrugadas na frente do
computador? Com certeza eu
passaria as madrugadas com meus
amigos, e mais importante, com
muuuitas amigas :-)Rodrigo Strauss (autor do texto)
• Aprender a programar não requer investimento;
• Essa característica talvez lhe permita ganhar um
bom dinheiro programando nas horas vagas (não
vai gastar nem com matéria prima);
![Page 15: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/15.jpg)
Falta de tempo ...
Quando seu chefe perceber que você
arruma os computadores da empresa
melhor do que o cara da manutenção, é
bem capaz que você deixe de ser
balconista..Rodrigo Strauss (autor do texto)
• Divida seu tempo: estudo, trabalho, lazer ...
• Todo mundo tem tempo, é só se dedicar;
• Se você pega ônibus para ir ao trabalho, leia no ônibus.
• Trabalha de balconista? Leia enquanto não tem clientes para
atender;
![Page 16: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/16.jpg)
Idade
• Você tem mais de 30 anos?
• Mais de 40?
• Mais ainda?
• Se seu cérebro ainda funciona, a idade não
importa.
![Page 17: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/17.jpg)
"É muito complicado"
• Não precisa ser um gênio para ser
programador.
• Mas vai te exigir dedicação!
▫ Isso te interessa?
• Você é um homem (ou mulher) ou um rato?
• A vida é sua, você tem a opção de arrumar um emprego
de balconista e ficar lá até o resto da sua vida (ou até eles
te trocarem por uma máquina).
![Page 18: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/18.jpg)
por Marcelo Cohen & João Batista S. de Oliveira
![Page 19: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/19.jpg)
Para ser reprovado em Laboratório de Programação
Não leia os materiais ...
• NÃO LEIA nenhuma delas, pois isso
desfaz imediatamente o campo e
você não vai aprender nada!
• Baixe todos os materiais da disciplina, e depois
carregue na pasta o tempo todo, pois elas criam
um campo magnético onde você aprende por
osmose.
![Page 20: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/20.jpg)
Para ser reprovado em Laboratório de Programação
Faça os trabalhos na carona ...
• Lembre-se de que mais
tarde você vai ter de fazer
prova, e não deve estar
esgotado de tanto pensar
em algoritmos!
• Quando fizer trabalho em grupo, pendure-se em
um grupo qualquer e não levante um dedo pra
fazer o trabalho.
![Page 21: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/21.jpg)
Para ser reprovado em Laboratório de Programação
Não vá na biblioteca
• Nunca entre na
biblioteca, nem pra
devolver livro dos outros.
• Você pode achar algo
interessante pra ler, e
isso arruinaria o seu final
de semana.
![Page 22: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/22.jpg)
Para ser reprovado em Laboratório de Programação
Não faça os exercícios
• Listas de exercícios são para os incompetentes,
por isso você pode ignorá-las.
• Dê risada quando
encontrar alguém
fazendo.
![Page 23: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/23.jpg)
Para ser reprovado em Laboratório de Programação
Converse durante as aulas
• Use a aula pra colocar a conversa em dia,
afinal você nunca sabe quando vai ver seus
amigos outra vez.
![Page 24: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/24.jpg)
Para ser reprovado em Laboratório de Programação
Não faça anotações em aula
• Se você for guri, não anote nada e copie o
caderno de uma guria.
• Se você for guria, não
anote nada e copie de
outra guria.
• Afinal, para ir bem nas
provas basta decorar a
matéria!
![Page 25: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/25.jpg)
Para ser reprovado em Laboratório de Programação
Copie trabalhos da internet
• Entregar qualquer coisa com uma capinha legal
e espaçamento duplo é certeza de boa nota.
• Junte suas páginas preferidas da Internet e não
esqueça de usar um clips colorido.
• Afinal, na Internet sempre
tem o trabalho que você
precisa, e o professor não
vai nem olhar mesmo...
![Page 26: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/26.jpg)
Para ser reprovado em Laboratório de Programação
Não estude para as provas
• Só os incompetentes estudam muitos dias
antes da prova. Os feras de verdade nem
estudam, e evitam ficar com olheiras.
![Page 27: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/27.jpg)
Para ser reprovado em Laboratório de Programação
Evite material em idioma estrangeiro
• Se recuse a ler qualquer coisa
que esteja escrita em inglês!
• Afinal, você só vê filme
estrangeiro se tiver legenda, e
com livros deveria ser a mesma
coisa... Até mesmo porque tudo
que você precisa pode ser
encontrado nos livros em
português.
![Page 28: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/28.jpg)
Conclusão
• Programar não se aprende
• Copiando
• Lendo programas
• Programar se aprende
• Escrevendo e testando
programas
![Page 29: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/29.jpg)
Não fique esperando a ficha cair por si só ...
Faça a sua parte
![Page 30: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/30.jpg)
Você já pensou em treinar um cão?
Como você acha que ele aprende?
![Page 31: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/31.jpg)
Você já pensou em aprender a tocar
violão?(ou outro instrumento)
Experimente ...
É possível aprender?
![Page 32: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/32.jpg)
Exercícios não ajudam?
Já pensou ou tentou emagrecer?
![Page 33: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/33.jpg)
Precisará de muita prática para ser um bom jogador
Que tal aprender Xadrez?
![Page 34: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/34.jpg)
Você já ficou alguma noite sem dormir pensando
em um algoritmo/programa?
É uma excelente experiência.
Com programação não é diferente!
![Page 35: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/35.jpg)
Conceitos iniciais
![Page 36: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/36.jpg)
Algoritmo
• Sequência de instruções organizadas e sistematizadas
utilizadas para resolver um problema;
• Um algoritmo não representa, necessariamente, um
programa de computador, e sim os passos necessários
para realizar uma tarefa.
![Page 37: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/37.jpg)
Programa de Computador
• Instruções formalizadas em uma linguagem de
programação que são transformados em um código de
máquina que é interpretado pelo computador;
program OlaMundo;
begin
writeln('Olá, Mundo!');
end.
Código em uma
Linguagem de Programação Compilador daquela Linguagem de
programação (e para determinada arquitetura e sistema operacional)
Relatório
de Erros
Executável
![Page 38: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/38.jpg)
Tudo começa com um bom projeto
Etapas:• Definição do problema;
• Análise de requisitos;
• Método;;
• Projeto do algoritmo;
• Validação;
• Otimização;
• Implementação;
![Page 39: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/39.jpg)
Programar é como marcenaria ...
• Assim como um marceneiro um programador precisa
conhecer as ferramentas que dispõe e a melhor forma de
utilizá-las.
• As ferramentas do programador são os recursos que
linguagem de programação lhe oferece ...
▫ Expressões;
▫ Estruturas de Decisão;
▫ Laços de Repetição;
▫ Modularização.
![Page 40: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/40.jpg)
O que é uma linguagem de programação?
![Page 41: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/41.jpg)
Linguagem de Programação
• Método padronizado utilizado para
expressar instruções a um computador;
• Não é um software e sim um conjunto de
regras sintáticas e semânticas que irão
definir um programa de computador.
![Page 42: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/42.jpg)
Sintaxe = Forma• A sintaxe são as regras que definem o formato de
uma linguagem, estabelecendo com são
compostas e combinadas suas palavras.
• Compõe-se de:▫ Regras léxicas que descrevem combinações de
caracteres válidas para formar os tokens (palavras
reservadas, operadores, comandos);
▫ E regras sintáticas que descrevem como as palavras
podem ser combinadas para formar instruções válidas.
![Page 43: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/43.jpg)
Semântica = Significado• A semântica diz respeito ao significado das
construções sintáticas;
• Um programa pode estar sintaticamente correto
mesmo com erros semânticos.
▫ Erros semânticos comuns ...
Utilizar uma variável que não foi declarada;
Acessar uma posição inválida em uma lista (vetor);
Atribuir um conteúdo inválido em uma variável;
![Page 44: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/44.jpg)
Nível de uma LP
• Linguagem de baixo nível
▫ Suas construções aproximam mais da linguagem
de máquina;
▫ Ex. Assembly
WRITE_CHAR PROC
push AX ;coloca na pilha o valor do registrador AX
mov AH,2 ;coloca o valor hexadecimal 2 no registrador AH
int 21h ;interrupção 21h
pop AX ;extrai da pilha o valor de AX
ret ;retorna o controle ao procedimento que chamou
WRITE_CHAR ENDP
![Page 45: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/45.jpg)
Nível de uma LP (cont.)
• Linguagem de alto nível
▫ Linguagens que fornecem abstrações e adoção de
tipos de dados, palavras reservadas, funções e
comandos de uso comum e mais próximos da
linguagem natural.
▫ Ex. C, Pascal, Java, PHP, Python
program Exemplo
begin
write("Sejam bem vindos");
end;
![Page 46: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/46.jpg)
Compilação x Interpretação
![Page 47: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/47.jpg)
Linguagens Interpretadas
• Em uma linguagem de programação interpretada um
programa é executado instrução a instrução;
• O comando precisa ser primeiramente traduzido para
linguagem de máquina para só então executado;
• Sua execução é necessariamente mais lenta que
linguagens que são executadas diretamente em código
de máquina (em função da etapa de tradução);
• O código-fonte precisa ficar disponível para ser
interpretado;
![Page 48: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/48.jpg)
Linguagens Compiladas
• Em uma linguagem compilada o programa é executado
somente após toda sua tradução ter sido completada;
• Somente o programa executável precisa ser
disponibilizado (o código-fonte não é necessário para a
execução);
• A compilação de um programa fonte (texto escrito
diretamente na linguagem de alto nível) prevê que o
mesmo seja traduzido para a linguagem da máquina
correspondente antes da execução (processo conhecido
por compilação).
![Page 49: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/49.jpg)
Etapas da compilação
1. Depuração sintática
▫ Avalia se o código produzido no programa-fonte está
codificado corretamente;
2. Geração do código de máquina
▫ Transforma o código-fonte linguagem de montagem;
3. Ligação ou Linkagem▫ Empacota o código produzido com o conjunto de bibliotecas
utilizadas e gera um programa executável independente;
![Page 50: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/50.jpg)
Etapas da compilação
Programa
Fonte Compilador
Ligador
(Linker)
Código de Bibliotecas
Programa
Executável
![Page 51: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/51.jpg)
Linguagem de Programação Pascal
![Page 52: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/52.jpg)
Breve histórico
• Linguagem de programação estruturada;
• Criada em 1970 pelo suíço Niklaus Wirth;
• Surgiu com o intuito de ser uma linguagem de
programação simples para ser utilizada
academicamente no ensino de programação.
• Seu nome é uma homenagem ao matemático Blaise
Pascal (inventor das primeiras máquinas lógicas);
Niklaus Wirth
![Page 53: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/53.jpg)
Características
• Imperativa (baseada em um programa principal que
eventualmente executa sub-rotinas);
• Compilada (produz um executável independente);
• Fortemente tipada (as variáveis precisam ser
declaradas com seus tipos de dados associados);
• Não é case sensitive (não há diferenciação entre letras
maiúsculas e minúsculas);
![Page 54: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/54.jpg)
Pascal na atualidade
• Evoluiu para a linguagem Object Pascal, utilizada em ambientes
desenvolvimento como Delphi, Kylix e Lazarus;
• Continua sendo uma excelente linguagem para aprendizado de
programação;
Fonte: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Ranking de
Popularidade das
Linguagens
de Programação
(Agosto/2010)
![Page 55: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/55.jpg)
Estrutura básica de um programa
PASCAL
program nome_programa;
uses crt; //bibliotecas
var //Declaração de variáveis
instituicao : string;
begin //Início do programa
instituicao := “UFSM”;
write(instituicao);
end.
![Page 56: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/56.jpg)
Compilador PASCAL
• Existe uma extensa lista de compiladores de linguagem
Pascal ... http://pascaland.org/pascall.htm
• Dois em especial nos interessam ...
Borland Turbo Pascal Lançado comercialmente em 1983 para atingir o mercado de
micro computadores (em plena expansão na época). É o
grande responsável pela popularização do Pascal;
Free Pascal Iniciativa da comunidade de software livre, disponível para
download no endereço www.freepascal.org.
![Page 57: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/57.jpg)
Compilador Free Pascal
• Etapas de compilação1. Edite o código em um editor de textos ou ambiente de desenvolvimento;
2. Salve o arquivo em uma pasta de sua preferência com extensão .PAS
3. Abra uma janela de interpretador de comandos do sistema operacional
(prompt de comandos, no Windows ou tela de terminal no Linux);
4. Execute o comando para compilação:
fpc OlaMundo.pas <enter>
5. O resultado da compilação será um arquivo OlaMundo.o (código objeto)
e o arquivo executável: OlaMundo.exe
program OlaMundo;
begin
write('Olá, Mundo!');
end. OlaMundo.pas
![Page 58: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/58.jpg)
IDE – Ambiente de Desenvolvimento(Integrated Development Environment)
• Oferece recursos de produtividade ao desenvolvedor:
▫ Indicação de sintaxe (syntax highlighting);
▫ Código automático (code completion);
▫ Integração das etapas de compilação;
Geany IDE Editor de código gratuito e multi-plataforma;
Oferece recursos para diferentes linguagens de programação;
Disponível em: http://www.geany.org/
![Page 59: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/59.jpg)
Geany IDE
![Page 60: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/60.jpg)
Exercícios para fixação
![Page 61: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/61.jpg)
Compilar e Executar
• Compile e execute o código abaixo e verifique o que está
irá aparecer na tela;program DeQuePaisEhEssaBandeira ;
uses crt;
var i: integer;
begin
for i:=1 to 640 do
begin
textcolor (9);
write (#178);
end;
for i:=1 to 720 do
begin
textcolor (15);
write (#178);
end;
for i:=1 to 640 do
begin
textcolor (4);
write (#178);
end;
end.
![Page 62: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/62.jpg)
Comentários
• Reescreva o código
ao lado indicando
para cada linha, o
que é esperado que
ela faça.
program Test;
uses crt;
var a, b: integer;
begin
textbackground(2);
textcolor(1);
clrscr;
gotoxy(15,10);
write('Type a number for A...: ');
read(a);
gotoxy(15,12);
write('Type a number for B...: ');
read(b);
gotoxy(15,14);
if (a > b) then
writeln('A is greater than B')
else if (a < b) then
writeln('B is greater than A')
else
writeln('B is equals A');
readkey;
end.
![Page 63: Laboratório de Programação (DPADF 0063) - cafw.ufsm.brbruno/disciplinas/lab_programacao/slides/aula1... · •Apostila: •Página da ... Programar é como marcenaria ... •Assim](https://reader031.vdocuments.net/reader031/viewer/2022022715/5c0d418509d3f2e4358d78a3/html5/thumbnails/63.jpg)
Jogo dos 7 erros
• Identifique e corrija os sete erros do código abaixo:
program SquareRoot;
var raiz: real;
begin
write('Informe um numero: ');
read(x)
if (x<0) then
writeln('Numeros negativos nao sao permitidos!)
else
begin
raiz := Sqrt(x);
writeln('O raiz de ', x:0:4, ' e ', raiz:0:4);
writeln('Bom dia';
readkey;
end;