• Nenhum resultado encontrado

Laboratório de Programação (DPADF 0063)

N/A
N/A
Protected

Academic year: 2021

Share "Laboratório de Programação (DPADF 0063)"

Copied!
63
0
0

Texto

(1)

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

(2)

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.

(3)

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.

(4)

Material de Aula

• Apostila:

• Página da Disciplina:

www.cafw.ufsm.br/~bruno/disciplinas/lab_programacao

(5)

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)

(6)

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

(7)

por Rodrigo Strauss

(8)

Antes de mais nada ...

Estude ... estude ... estude ...

Quanto tiver absorvido uma boa

quantidade de informações ...

(9)

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;

(10)

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.

(11)

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.

(12)

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á

(13)
(14)

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);

(15)

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;

(16)

Idade

• Você tem mais de 30 anos?

• Mais de 40?

• Mais ainda?

• Se seu cérebro ainda funciona, a idade não importa.

(17)

"É 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).

(18)
(19)

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

(20)

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.

(21)

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.

(22)

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.

(23)

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.

(24)

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!

(25)

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...

(26)

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.

(27)

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.

(28)

Conclusão

• Programar não se aprende

• Copiando

• Lendo programas

• Programar se aprende

• Escrevendo e testando programas

(29)

Não fique esperando a ficha cair por si só ... Faça a sua parte

(30)

Você já pensou em treinar um cão?

(31)

Você já pensou em aprender a tocar

violão?

(ou outro instrumento)

Experimente ... É possível aprender?

(32)

Exercícios não ajudam?

(33)

Precisará de muita prática para ser um bom jogador

(34)

Você já ficou alguma noite sem dormir pensando em um algoritmo/programa?

É uma excelente experiência.

(35)
(36)

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.

(37)

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

(38)

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;

(39)

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.

(40)
(41)

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.

(42)

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.

(43)

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;

(44)

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

(45)

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");

(46)
(47)

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;

(48)

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).

(49)

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;

(50)

Etapas da compilação

Programa Fonte Compilador Ligador (Linker) Código de Bibliotecas Programa Executável

(51)
(52)

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);

(53)

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);

(54)

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)

(55)

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);

(56)

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.

(57)

Compilador Free Pascal

• Etapas de compilação

1. 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!');

(58)

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/

(59)
(60)
(61)

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.

(62)

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;

(63)

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;

Referências

Documentos relacionados

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial

Evacuar imediatamente a área do derramamento ou vazamento, em todas as direções, num raio de pelo menos 15 m (consultar a Tabela de Distância de Evacuação. Se o nome do produto for

Introduction: We assessed the effects of therapeutic ultrasound (TUS), either added to cast immobilization (CI) as a treatment alternative to muscular injuries

PARÁGRAFO 1º para jornada de 06 horas diárias a empresa fornecerá o auxilio alimentação aos seus empregados para cada dia trabalhado o valor de R$ 8,00 (oito reais).. PARÁGRAFO 2º

6.4 Em caso de abertura de vaga com o perfil exigido neste Comunicado para outras Unidades pertencentes ao Sistema Findes, num prazo de até 1 (um) ano, a contar da data da

O desenvolvimento do sistema unificado de inscrição e administração da concessão de bolsas de auxílio estudantil essenciais foi crucial para atender de forma correta e

Após retirar, da maré observada, o valor da maré teórica, aplicou-se uma linha de tendência aos dados resultantes, a qual representa a variação do nível médio das águas no

Você está sendo convidado(a) como voluntário(a) a participar da pesquisa (Avaliação do uso de drogas em adolescentes atendidos em UBSs e a percepção de uso de