Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf ·...

76
Departamento de Engenharia Rural Centro de Ciências Agrárias Programação I

Transcript of Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf ·...

Page 1: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Departamento de Engenharia Rural

Centro de Ciências Agrárias

Programação I

Page 2: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Aula 04

Algoritmos

Sintaxe e Semântica

Notações para representação de algoritmos.

Elementos básicos de programação.Tipos de dados

Constantes

Variáveis

Identificadores

Palavras reservadas

Comentários

Page 3: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Algoritmos

De forma breve, foi visto que um algoritmo especifica um conjunto de ações e a ordem que elas devem ser executadas para que se tenha a realização de uma tarefa.

Normalmente, algoritmos não podem ser executados pelos computadores. Mas então para que escrevê-los?

Page 4: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Algoritmos

A programação envolve a compreensão de um problema e a especificação de uma solução.

A experiência tem mostrado que a parte mais difícil de se resolver um problema em um computador é desenvolver o algoritmo para a solução.

Mesmo depois que você aprender uma linguagem de programação, a etapa de entendimento do problema e esboço de uma solução poderão ser melhor realizadas se você utilizar algoritmos em vez de partir direto para a escrita de código em alguma linguagem de programação.

Page 5: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Algoritmos

Solução na forma de programa de computador

Problema

Solução na forma de algoritmo

(1) Fase de resolução do problema

(2) Fase de implementação

Page 6: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Algoritmos

O uso de algoritmos pode facilitar o processo de desenvolvimento da solução, já que estes não precisam incorporar detalhes técnicos e de sintaxe das linguagens de programação.

Tanto os algoritmos quanto os programas são especificados usando alguma notação ou linguagem.

Page 7: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Aula 04

Algoritmos

Sintaxe e Semântica

Notações para representação de algoritmos.

Elementos básicos de programação.Tipos de dados

Constantes

Variáveis

Identificadores

Palavras reservadas

Comentários

Page 8: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Sintaxe e Semântica

A definição de qualquer linguagem comporta dois aspectos: a forma da linguagem e o significado associado a essa forma.

A estes aspectos damos respectivamente o nome de sintaxe e semântica da linguagem, e estes estarão presente tanto no estudo de algoritmos quanto de linguagens de programação.

Page 9: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Sintaxe e Semântica

SintaxeConjunto de regras formais para a composição de um texto em uma

linguagem a partir do agrupamento de letras, dígitos e/ou outros símbolos/caracteres (alfabeto da linguagem).

Forma das expressões, instruções e das unidades de programa.

Analisando a sintaxe de um fragmento de linguagem, busca-se verificar se sua formação é correta ou não.

SemânticaSignificado lógico das expressões, instruções e unidades de uma

linguagem/algoritmo/programa.

Analisando a semântica de uma expressão escrita de forma sintaticamente correta em alguma linguagem, busca-se verificar se a sua (o seu) ideia/interpretação/significado/objetivo estão de acordo com a intenção pretendida.

Apesar de serem frequentemente estudadas separadamente, a semântica e a sintaxe estão estreitamente ligadas: Uma deve ser o que a outra quer realizar.

Page 10: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Sintaxe e Semântica

ExemplosSintaxe

A brilho do sol bonita muito ficar em xuvosos dias.

O brilho do sol fica muito bonito em dias chuvosos.

Semântica

O fogo apaga a água. (erros sintáticos???)

A água apaga o fogo.

Coisas semelhantes a estes exemplos podem acontecer ao escrevermos algoritmos e programas:

Escrevemos instruções usando uma forma errada e/ou instruções cujos resultados não são aqueles que realmente queríamos.

Page 11: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Aula 04

Algoritmos

Sintaxe e Semântica

Notações para representação de algoritmos.

Elementos básicos de programação.Tipos de dados

Constantes

Variáveis

Identificadores

Palavras reservadas

Comentários

Page 12: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Representação de algoritmos

Aponte seu Lápis

Para estudar o desenvolvimento de algoritmos, vamos começar com um problema bem simples.O diretor de uma escola lhe pediu para escrever um algoritmo para cálculo da média entre duas notas dos alunos.

Eu tinha um programador que faria um serviço para mim, mas ele não está atendendo o telefone.

Ele desapareceu! Você acha que pode me ajudar?

Page 13: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Representação de algoritmos

A entrada deste algoritmo serão dois valores numéricos (notas) e a saída será a média aritmética destes números.

Naturalmente qualquer pessoa que saiba somar e dividir números é capaz de executar este algoritmo dispondo apenas de lápis e papel.

Page 14: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Representação de algoritmos

O algoritmo poderia ser especificado por meio de linguagem coloquial.

Entretanto, nem sempre esse tipo de linguagem é eficiente para se escreverem as instruções.

Imagine um algoritmo para determinação das raízes de uma equação do segundo grau especificado em linguagem coloquial. Provavelmente, o algoritmo teria uma instrução difícil de escrever e difícil de compreender como:

n. Subtraia do quadrado do segundo coeficiente o produto do número quatro pelo produto dos dois outros coeficientes.

Page 15: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Representação de algoritmos

Em vez de usar a linguagem coloquial, a especificação de algoritmos pode ser feita mais adequadamente utilizando outros instrumentos de linguagem.

Tratam-se das notações para especificação de algoritmos.

Posteriormente, os algoritmos podem ser traduzidos sem dificuldade para programas de computador.

Page 16: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Representação de algoritmos

Entre as notações mais utilizadas para a especificação de algoritmos tem-se:Descrição narrativa

Pseudo-linguagens (ex.: Português estruturado ou Portugol)

Representações pictóricas

Fluxogramas (Diagrama de blocos, Diagramas de atividades (UML) )

Page 17: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Descrição narrativa

Especificação verbal dos passos em linguagem natural, ou seja, faz-se uso do português para descrever algoritmos.

Uma estratégia que pode facilitar a escrita de algoritmos utilizando uma descrição narrativa é o uso da abordagem descendente com refinamentos sucessivos.

Page 18: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Abordagem descendente com refinamentos sucessivos

Esta estratégia é essencial para desenvolver programas bem estruturados.

Você começa com uma representação do algoritmo no nível mais alto de abstração possível daquilo que seria a solução para o problema (algoritmo TOPO) – uma única ação capaz de transmitir a funcionalidade geral do programa.

Page 19: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Descrição narrativa

Para o problema do cálculo da média de alunos você poderia escrever o algoritmo TOPO como:

Determinar e exibir a média do aluno

O TOPO é, consequentemente, uma representação completa de um programa.

Infelizmente, ele raramente fornece detalhes suficientes para você convertê-lo facilmente em um programa.

Assim, deve-se iniciar um processo de refinamentos que consiste em dividir o algoritmo TOPO em uma série de tarefas menores e listá-las na ordem em que elas serão executadas.

Page 20: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Descrição narrativa

Isto resulta no seguinte primeiro refinamento:

Realizar as entradasCalcular e exibir a média

Cada refinamento, assim como o próprio algoritmo TOPO, é uma especificação completa do algoritmo que resolve o problema – apenas o nível de detalhe é que varia.

Page 21: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Descrição narrativa

Pode-se acrescentar mais detalhes ao algoritmo atual, seguindo para o próximo nível de refinamento, isto é, o segundo refinamento:

A instrução:Realizar as entradasPode ser refinada como:Solicitar ao usuário a entrada do valor da nota 1Obter o valor da nota 1Solicitar ao usuário a entrada do valor da nota 2Obter o valor da nota 2

Page 22: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Descrição narrativa

Pode-se acrescentar mais detalhes ao algoritmo atual, seguindo para o próximo nível de refinamento, isto é, o segundo refinamento:

A instrução:Calcular e exibir a médiaPode ser refinada como:Calcular a soma da nota 1 com a nota 2Calcular a média como a soma dividida por 2Exibir a média

Page 23: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Descrição narrativa

Assim, a versão completa do algoritmo após o segundo refinamento seria:

Solicitar ao usuário a entrada do valor da nota 1Obter o valor da nota 1Solicitar ao usuário a entrada do valor da nota 2Obter o valor da nota 2Calcular a soma da nota 1 com a nota 2Calcular a média como a soma dividida por 2Exibir a média

Page 24: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Descrição narrativa

Vantagens:O português é bastante conhecido por nós;

Desvantagens: A linguagem natural é prolixa (normalmente, escreve-se

muito para dizer pouca coisa) e imprecisa e frequentemente pouco confiável como um veículo de transferir informação.

Sua utilização pode ser adotada, entretanto, para a apresentação de comentários sobre o algoritmo (ou parte dele), esclarecendo ou realçando pontos específicos.

Page 25: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Descrição narrativa

Aponte seu Lápis

Muito bom, você já tem uma noção da notação descrição narrativa. Precisamos agora que o

algoritmo seja especificado usando uma notação de Pseudo-Linguagem, pode ser em Portugol. Já

ouviu falar sobre isto?

Page 26: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Pseudo-linguagem

linguagem especial para expressão de algoritmos;

funciona como uma “linguagem simplificada de programação”, utilizando expressões concisas e pré-definidas para representar as ações e o fluxo de execução.

Page 27: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Pseudo-linguagem

É uma descrição textual, estruturada e regida por regras que descrevem os passos executados no algoritmo.

Utiliza-se palavras-chaves, indentação, apenas um passo por linha, onde normalmente usa-se um símbolo para indicar o fim de um passo(como por exemplo o ponto-e-vírgula “;”), etc.

Page 28: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Portugol

Neste curso, será utilizada uma pseudo-linguagem denominada Portugol, pois ela possui uma estrutura similar à linguagem de programação Pascal, que também será adotada posteriormente.

Page 29: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Portugol

Em Portugol, o algoritmo para cálculo da média das notas poderia ser:

{Calcular a média de um aluno.}Algoritmo CALCULA_MEDIA; var P1, P2, MEDIA: real; { variáveis com as notas e a média } Inicio

leia (P1); { leitura da nota da prova 1 } leia (P2); { leitura da nota da prova 2 } MEDIA ← (P1 + P2) / 2; { cálculo da média } escreva (MEDIA); { mostrar a média }

Fim.

Não se preocupe com as instruções agora, elas serão explicadas em mais detalhes posteriormente.

12345678910

Page 30: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Portugol

Vantagens: Usa o português como base;

Pode-se definir quais e como os dados vão estar estruturados;

Passagem quase imediata do algoritmo para uma linguagem de programação qualquer.

Desvantagens: Exige a definição de uma linguagem não real para

trabalho;

Não padronizado.

Page 31: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Portugol

Aponte seu Lápis

Algumas pessoas aqui da escola não compreendem muito bem como seria o fluxo das ações apenas lendo os algoritmos em notações textuais. Teria

como você apresentar esse algoritmo por meio de um fluxograma?

Page 32: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Diagrama de blocos

Representação gráfica de algoritmos onde formas geométricas diferentes implicam ações (instruções, comandos) distintos.

Tal propriedade facilita o entendimento das ideias contidas nos algoritmos e justifica sua popularidade.

Page 33: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Diagrama de blocos

Exemplo: Calcular a média de um aluno. início

Média =(Nota1 + Nota2) / 2

Média

Fim

Nota1, Nota2

Page 34: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Diagrama de blocos

Vantagens:Uma das ferramentas mais conhecidas;

Figuras dizem muito mais que palavras;

Padrão mundial

Desvantagens:Pouca atenção aos dados, não oferecendo recursos

para descrevê-los ou representá-los;

Complica-se à medida que o algoritmo cresce.

Page 35: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Aula 04

Algoritmos

Sintaxe e Semântica

Notações para representação de algoritmos.

Elementos básicos de programação.Tipos de dados

Constantes

Variáveis

Identificadores

Palavras reservadas

Comentários

Page 36: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Elementos básicos de programação

Antes de aprofundar nas regras sintáticas ( além da semântica relacionada a cada uma) do Portugol e conhecer os elementos da notação de diagramas de blocos, é importante assimilar alguns conceitos fundamentais de programação:

Tipos de dados

Constantes

Variáveis

Identificadores

Comentários

Page 37: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Aula 04

Algoritmos

Sintaxe e Semântica

Notações para representação de algoritmos.

Elementos básicos de programação.Tipos de dados

Constantes

Variáveis

Identificadores

Palavras reservadas

Comentários

Page 38: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Tipos de dados

Em programação, um tipo define um padrão de comportamento para os dados que serão processados durante a execução do programa.

Page 39: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Tipos de dados

Fazendo uma analogia entre tipos de dados e tipos de objetos que estamos acostumados a ver e manipular algumas ações podem ser convenientemente realizadas com objetos de certos tipos mas não com objetos de outros tipos.

Por exemplo, objetos do tipo fruta podem ser descascados, objetos do tipo carro não.

Page 40: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Tipos de dados

Um tipo de dado consiste em:Um conjunto de valores (domínio)

Um conjunto de operações

Exemplo de Tipo:Conjunto dos inteiros:

Domínio: ...-3, -2, -1, 0, 1, 2, 3...

Operações: adição, subtração, multiplicação, divisão inteira, resto da divisão, etc.

Page 41: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Tipos de dados

Deve-se representar características do contexto do problema a ser resolvido por meio de alguma abstração codificada na memória do computador.

Os dados do problema que serão processados para a geração de saídas (as soluções para o problema) devem ser convenientemente representados no sistema computacional.

Page 42: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Tipos de dados

Como os tipos de dados podem apresentar diferentes características quanto a quantidade e ao tipo de valores que constituem o conjunto, diferentes tipos de dados serão representados na linguagem de máquina de forma distinta.

A quantidade de bits utilizada e a maneira que se interpretará uma cadeia de bits será específica para cada tipo de dado assim como as operações aplicáveis a esses valores.

Em resumo, certas operações podem não ser possíveis quando os dados envolvidos são detipos diferentes!

Page 43: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Tipos de dados

Podemos dividir os tipos de dados em:Elementares (ou primitivos)

Estruturados

Os tipos de dados elementares são definidos de forma que não existe uma estrutura sobre seus valores.

Nos tipos de dados estruturados existe uma relação estrutural entre seus valores. Esta relação estrutural entre os valores será estudada posteriormente e podem ser classificadas como linear e não linear.

Page 44: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Tipos de dados elementares

Podem representar basicamente três conjuntos de valores: Numéricos, Caracteres e lógicos.

NuméricosEspecíficos para representação de números que

poderão ser utilizados em cálculos. Podem ser ainda classificados como Inteiros ou Reais.

Valores típicos:

1, 1.01, -30.23, 0.0, 999, etc.

Operações comuns:

Adição, subtração, multiplicação, divisão, etc.

Page 45: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Tipos de dados elementares

NuméricosValores numéricos podem ser divididos em

conjuntos como:

Inteiros -1, 3, 4, etc.

reais -30.01, 0.003, 2.09, etc.

Page 46: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Tipos de dados elementares

CaracteresEspecíficos para representar dados que

representam letras, dígitos e outros símbolos.

Exemplos:

‘a’, ‘A’, ‘B’, ‘z’, ‘&’, ‘*’, ‘!’, ‘(‘, ‘>’, ‘#’, ‘9’, ‘0’, ‘3’, etc.

Page 47: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Tipos de dados elementares

CaracteresÉ importante destacar que quando se

representa um dígito como um caractere, operações aritméticas não são possíveis e, em alguns casos, os resultados produzidos podem ser diferentes do esperado.

‘1’+’4’ não resulta 5, mas sim ’14’, conforme será discutido em breve.

Page 48: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Tipos de dados elementares

CaracteresO tipo de dado caractere é a base do tipo estruturado

chamado Cadeia.

Os valores desse tipo são sequências de um ou mais caracteres. Exemplos:

‘limão e jambo’, ’(32)-3741-8829’, ‘Rua couve, 54’, ‘beltr@no!’, etc.

Em linguagens de programação, o a estrutura cadeia é implementada pelo tipo estruturado String.

Todo valor do tipo caractere ou cadeia será expresso entre um par de apóstrofes, como nos exemplos acima.

Page 49: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Tipos de dados elementares

CaracteresOperações comuns:

converter a caixa de um caractere (caixa alta para caixa baixa ou o contrário);

Cadeiasacessar o caractere de determinada posição em uma cadeia;

obter número de caracteres de uma cadeia;

concatenar duas cadeias (‘fulano’ + ‘ de ‘ + ‘ tal’ = ‘fulano de tal’);

substituir uma subcadeia de caracteres dentro de uma cadeia;

apagar determinada subcadeia em uma outra cadeia, etc.

Page 50: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Tipos de dados elementares

LógicosO tipo de dado lógico ou booleano,

consiste de um conjunto em que há somente dois valores:

Verdadeiro

Falso

Operações

operações lógicas como conjunção, disjunção, negação;

Page 51: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Aula 04

Algoritmos

Sintaxe e Semântica

Notações para representação de algoritmos.

Elementos básicos de programação.Tipos de dados

Constantes

Variáveis

Identificadores

Palavras reservadas

Comentários

Page 52: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Constantes e variáveis

Variáveis e constantes são os elementos básicos que um programa manipula.

Devem estar associadas à algum tipo (elementar ou estruturado) e constituem um dos meios de representação dos dados que, de alguma forma, serão utilizados durante a execução do programa.

Page 53: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Constantes

Constante (ou literal)É um determinado valor fixo que não se

modifica ao longo do tempo, durante a execução de um programa. Conforme o seu tipo, a constante é classificada como sendo numérica, lógica e literal.

Exemplo de constantes:

Na expressão acima, o denominador é uma constante numérica (3).

N1+N2+N3

3M =

Page 54: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Constantes

ConstanteNo algoritmo de cálculo da média das

notas, o valor 2 (linha 8) é uma constante numérica (inteira).

Page 55: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Constantes

Exemplos de constantes:‘Olá mundo.’ (cadeia)

‘B’ (caractere)

2.0001 (real)

2 (inteiro)

TRUE (lógico)

Page 56: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Aula 04

Algoritmos

Sintaxe e Semântica

Notações para representação de algoritmos.

Elementos básicos de programação.Tipos de dados

Constantes

Variáveis

Identificadores

Palavras reservadas

Comentários

Page 57: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

75

Variáveis

Variável

Em um programa, as variáveis servem para acompanhar (armazenar) os dados que estão na memória do computador. Cada variável corresponde a uma posição de memória, cujo conteúdo pode se alterado ao longo do tempo durante a execução do programa.

No algoritmo de cálculo da média de notas (Portugol), P1, P2 e MEDIA são as variáveis usadas “guardar” os dados necessários ao algoritmo.

Page 58: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Variáveis

VariávelAlgumas vezes um valor constante inicial deve

ser definido para certas variáveis (inicialização).

As expressões combinam variáveis e constantes para calcular novos valores.

Uma variável é composta de dois elementos básicos:

Conteúdo – valor atual da variável;

Identificador – “nome” dado à variável para possibilitar sua manipulação;

Page 59: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Variáveis

VariávelAnalogia variável x memória do

computador:

Endereço = posição na memória

Conteúdo = informação armazenada

Identificador = nome da

variável

Conteúdo = valor da variável

75

Page 60: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Variáveis

VariávelEmbora uma variável possa assumir

diferentes valores, ela só pode armazenar um valor a cada instante.

Resumidamente, variáveis são como nomes para os valores: sempre que for usado um nome de variável, o algoritmo (ou computador) irá considerar na realidade o valor que ela armazena.

Page 61: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Aula 04

Algoritmos

Sintaxe e Semântica

Notações para representação de algoritmos.

Elementos básicos de programação.Tipos de dados

Constantes

Variáveis

Identificadores

Palavras reservadas

Comentários

Page 62: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Identificadores

Em linguagens de programação, identificadores são tokens de texto que nomeiam entidades da linguagem, sendo também chamados "símbolos".

Entidades nomeadas incluem constantes, variáveis, tipos, sub-rotinas, unidades, programas e campos de um registro.

Na maioria das linguagens, algumas cadeias de caracteres possuem a forma léxica de um identificador, mas são conhecidas como palavras chave ou palavras reservadas.

Page 63: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Identificadores

Um dos objetivos dos identificadores é tornar a programação mais flexível e prática.

Em vez de trabalhar com endereços de memória pré-estabelecidos, o uso de identificadores possibilita o programador especificar os elementos de um programa por meio de nomes mais intuitivos.

Em linguagens compiladas, os identificadores são utilizados somente em tempo de compilação: conversão do código-fonte do programa em linguagem de máquina (binária).

Em tempo de execução, o programa possui somente referências à memória.

Page 64: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Identificadores

Identificadores podem ser associados a valores constantes quando for interessante armazenar tais valores na memória.

A esse tipo de construção dá-se o nome de constante nomeada.Uma constante nomeada terá seu

identificador declarado juntamente com seu valor.

Page 65: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Identificadores

Exemplos de Identificadores:

Total = Produto x Quantidade

Identificadores

Total deve ser um identificador de variável (pois está armazenando o resultado de um cálculo.

Os identificadores “Produto” e “Quantidade” também poderiam representar constantes nomeadas do programa, sem invalidar a expressão acima em que participam.

Page 66: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Identificadores

O processo de definição de identificadores para constantes e variáveis é denominado declaração de constantes e declaração de variáveis respectivamente.

Para tornar mais simples a comunicação de ideias neste curso, podemos fazer referências aos elementos de um programa diretamente como a variável (ou a constante) em vez de especificar o termo identificador todas as vezes.

Page 67: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Aula 04

Algoritmos

Sintaxe e Semântica

Notações para representação de algoritmos.

Elementos básicos de programação.Tipos de dados

Constantes

Variáveis

Identificadores

Palavras reservadas

Comentários

Page 68: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Palavras Reservadas

São palavras que fazem parte da estrutura da linguagem e têm significados pré-determinados.

Elas não podem ser redefinidas e não podem ser utilizadas como identificadores.

Exemplos de palavras reservadas da notação português estruturado (Portugol):inicio, fim, var, const, etc.

Page 69: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Aula 04

Algoritmos

Sintaxe e Semântica

Notações para representação de algoritmos.

Elementos básicos de programação.Tipos de dados

Constantes

Variáveis

Identificadores

Palavras reservadas

Comentários

Page 70: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Comentários

Os comentários representam qualquer texto que explique uma ação ou um dado usado no algoritmo:descrevem a finalidade de variáveis, sub-rotinas,

formas de uso do algoritmo, etc.

proporcionam maior clareza ao algoritmo (explicando verbalmente o raciocínio utilizado ou detalhes importantes de trechos do algoritmo).

Documentam decisões tomadas e suas justificativas.

Não interferem na lógica de execução do algoritmo.

Page 71: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Comentários

Podem ser colocados em qualquer ponto do algoritmo, utilizando símbolos especiais, como pares de chaves “{“ e “}”, duas barras seguidas //, etc.cada linguagem de programação pode ter suas próprias

regras para a escrita de comentários.

Exemplo de comentário usando “{“ e “}”:

Uma chave esquerda (ou chave de abertura ), {, abre um comentário.

Uma chave direita ( ou chave de fechamento), }, encerra um comentário.

{ ...comentários... }

Page 72: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Comentários

Outros exemplos:informando detalhes de um algoritmo:

{ ALGORITMO PARA CALCULAR A MEDIA DE ALUNOS } {Autor: Fulano de tal. } { Data de criação: 21/08/2007 Ultima atualização: 30/08/2007 }

Variáveis { coeficientes da equação de segundo grau} a, { coeficiente do termo dominante } b, { coeficiente do termo de grau 1 } c: inteiras; { coeficiente independente }

Dica de programação:Instruções grandes podem ser divididas em muitas linhas. Entretanto você não pode dividir uma instrução no meio de um identificador ou de uma string. Neste exemplo, temos uma lista separada por vírgulas.

Page 73: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Comentários

Na linguagem C, por exemplo, comentários que ocupam apenas uma linha podem ser especificados de uma maneira enquanto que para se fazer comentários em mais de uma linha a regra é outra, como apresentado abaixo:

// PROGRAMA PARA CALCULAR A MEDIA DE ALUNOS // Autor: Fulano de tal.

/* Data de criação: 21/08/2007 Ultima atualização: 30/08/2007 */

Page 74: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Exercícios

1) Defina algoritmo com suas palavras.

2) Cite 3 exemplos de algoritmos que você costuma utilizar no seu dia-a-dia.

3) Um algoritmo não pode conter um comando como “Escreva todos os números inteiros positivos”. Por quê?

4) Escreva um algoritmo usando descrição narrativa que receba como entrada um número e exiba seu sucessor.

5) Faça um algoritmo que aceite como entrada dois valores numéricos, calcule e forneça como saída:

a) A soma destes valores

b) O produto deles

c) O quociente entre eles

Page 75: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Exercícios

6) Elaborar um algoritmo que calcule o quociente inteiro e o resto de uma divisão, dados o dividendo e o divisor, com a restrição de que as únicas operações aritméticas disponíveis são: adição, subtração e multiplicação.

30112

32290

Dividendo

Divisor

QuocienteResto

Page 76: Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf · Sintaxe e Semântica Sintaxe Conjunto de regras formais para a composição de um

Referências BORLAND. Turbo Pascal, versão 7.0. [S.L.] : Borland International, Inc.,1992.

DEITEL, P. J.; DEITEL, H.M.; Java: How to program, 9th ed, Ed. Prentice-Hall, 2011. ISBN: 978-0-13-257566-9.

FARRER, H.; BECKER, C. G.; FARIA, E. C.; MATOS, H. F.; et al. Algoritmos estruturados. 3ed, Ed. LTC, 1999. ISBN: 9788521611806.

FARRER, H.; BECKER, C. G.; FARIA, E. C.; MATOS, H. F.; et al. Pascal estruturado. 3ed, Ed. LTC, 1999. ISBN: 9788521611745.

GUIMARÃES, A. M.; LAGES, N. A. C.; Algoritmos e estruturas de dados. 1ed, Ed. LTC, 1994. ISBN: 9788521603788.

GRIFFITHS,D., BARRY,P., Head First Programming – A learner's guide to programming using the Python language, O´Reilly, 2009, 406p.

http://wwwusers.rdc.puc-rio.br/rmano/processo.html

Velloso, F. C.; Informática: Conceitos Básicos. 7ed, Ed. Campus, 2004. ISBN: 9788535215366.