Você está na página 1de 23

Linguagens de Programação – Módulo 1

Índice

Conceitos essenciais de Programação

3

Linguagens de Programação

3

Organização dos dados

6

Noções Básicas de Programação e Algoritmia

8

Principais Fases da Actividade de Programação

8

Problemas, Algoritmos e Programas

8

Tipos de Dados

10

Operadores e Operações elementares

12

Variáveis e Expressões

14

Linguagens de Programação – Módulo 1

Conceitos essenciais de Programação

Linguagens de Programação

As Linguagens de Programação permitem a escrita de programas utilizados pelo computador.

Programa conjunto de instruções estruturadas, que obedecem a regras específicas da linguagem utilizada, que permitem ao computador executar tarefas pedidas.

Programa-Fonte é o texto, contendo instruções, escrito numa linguagem de programação.

Programa-Objecto é o programa que se obtém depois de traduzido o programa-fonte.

FASES DE ELABORAÇÃO DE UM PROGRAMA

1. Apresentação e Análise do problema

2. Formulação e representação de um algoritmo

3. Codificação do algoritmo numa linguagem

4. Compilação ou interpretação do programa-fonte

5. Teste de verificação de erros de lógica.

INTERPRETADORES/COMPILADORES

Os programas são escritos em linguagens de programação. Para que o computador possa entender esses
Os programas são escritos em linguagens de programação.
Para que o computador possa entender esses programas é necessário
traduzi-los para linguagem máquina (uma sequência de 0’s e 1’s).
A tradução do programa-fonte para linguagem
máquina é feita pelos programas tradutores.
Podem ser:
-Interpretadores
-Compiladores

Linguagens de Programação – Módulo 1

Os interpretadores e compiladores são programas que operam sobre o código-fonte.

O interpretador lê o código-fonte linha a linha e executa as instruções contidas nessa linha.

O compilador lê o programa inteiro e converte-o em código-objecto, que consiste numa tradução do código-fonte numa forma que pode ser directamente executada pelo computador.

Programas compilados são processados com maior rapidez do que os interpretados.

Ciclo de desenvolvimento de um programa compilado

Erros
Erros

O programa-fonte é traduzido integralmente para código-objecto.

 
 
   
 

Após

o

que

é

feita

uma

ligação

com

as

rotinas

nas

bibliotecas

incorporadas na linguagem por forma a gerar o programa executável.

O programa executável está apto a ser utilizado em qualquer altura sem que seja preciso traduzir de novo o programa-fonte.

Linguagens de Programação – Módulo 1

TIPOS DE LINGUAGENS DE PROGRAMAÇÃO

Pascal

C

Lisp

Cobol

Fortran

APL

Basic

Assembly

Ada

PL/1

CLASSIFICAÇÃO DAS LINGUAGENS DE PROGRAMAÇÃO

As linguagens de programação podem ser classificadas de acordo com a aproximação que têm da linguagem humana.

Há três níveis de classificação:

Baixo Nível

Nível Médio

Alto Nível.

Linguagens de baixo nível são linguagens escritas numa linguagem de programação muito parecida com a linguagem máquina.

Ex: Assembly

Linguagens de nível médio são linguagens escritas que combinam elementos de uma linguagem de alto nível com a funcionalidade do Assembly.

Ex: C

Linguagens de alto nível são linguagens que utilizam sintaxes estruturadas tornando o seu código mais legível.

Ex: Pascal, Cobol, Basic

Linguagens de Programação – Módulo 1

Organização dos dados

Informação é constituída por dados articulados com significado. Informação não é o mesmo que dados. É difundida e trabalhada de diversas formas (imprensa, televisão, publicidade, meios informáticos, etc).

Informação Conjuntos de dados articulados entre si, com determinado sentido ou significado.

Dados Designações de entidades (objectos, pessoas, etc), factos, valores numéricos, representações simbólicas, etc.

Dados

Exemplos

Informação

Exemplos

 

Caracteres;

C;

Palavras

A

Ana

vai

ao

articuladas

em

Brasil;

 

frases;

 

Palavras;

Ana; Brasil;

Mensagens,

notícias,

Números;

9; 5;

 

conhecimentos;

9

caixas

 

de

Valores

relativos

disquetes

a

5

   

a

quantidades,

cada;

 

Linhas;

Linhas; preços, datas;  

preços, datas;

Linhas; preços, datas;  
 

Pontos;

Pontos; Imagens,
Pontos; Imagens,

Imagens,

símbolos,

 

fotografias.

 

Formas.

 

DDaaddooss

PPrroocceessssaammeennttoo
PPrroocceessssaammeennttoo

IInnffoorrmmaaççããoo

Linguagens de Programação – Módulo 1

Características da Informação (Dados)

Externa/Interna

Permanente/Temporária

Qualitativa/Quantitativa

Elementar/Elaborada

Numérica/Alfabética/Alfanumérica.

Classificação Dos Dados

Dados quantitativos designam quantidades.

Dados classificativos designam elementos envolvidos.

Dados referenciais Permitem controlar ou referenciar os elementos tratados.

Linguagens de Programação – Módulo 1

Noções Básicas de Programação e Algoritmia

Objectivos:

Problemas, Algoritmos e Programas

Operações Elementares, Tipos de Dados, Variáveis e Expressões

Construção de Algoritmos em Linguagem Informal e Simbólica

Linguagens e Ambientes de Programação.

Principais Fases da Actividade de Programação

Definição do Problema

Fases da Actividade de Programação Definição do Problema Planificação da Resolução Estratégia de Abordagem

Planificação da Resolução Estratégia de Abordagem

Planificação da Resolução Estratégia de Abordagem Implementação - Codificação Teste e Depuração

Implementação - Codificação

Estratégia de Abordagem Implementação - Codificação Teste e Depuração Documentação Manutenção Problemas,

Teste e Depuração

Implementação - Codificação Teste e Depuração Documentação Manutenção Problemas, Algoritmos e

Documentação

- Codificação Teste e Depuração Documentação Manutenção Problemas, Algoritmos e Programas Como os

Manutenção

Problemas, Algoritmos e Programas

Como os computadores só fazem aquilo que nós mandamos, e não necessariamente aquilo que desejaríamos que fizessem, nas instruções de qualquer programa não deve haver nenhuma ambiguidade, nem a possibilidade de interpretações alternativas.

Uma afirmação como “calcule a média das notas neste teste” é muito imprecisa, apesar de parecer especificar aquilo que desejamos. Se repararmos bem, muitos detalhes foram omitidos; entre eles citamos: onde estão as notas, quantas são, os ausentes devem ou não ser incluídos, etc

Linguagens de Programação – Módulo 1

Muitos problemas interessantes parecem ser complexos do ponto de vista da programação. Em alguns casos, esta complexidade pode ser inerente ao problema em si. Durante o desenvolvimento de programas, a complexidade nem sempre será um problema se pudermos contorná-la adequadamente.

A programação de computadores pode ser uma área difícil mas muito

interessante, e a dificuldade inerente a esta área poderá ser contornada com a

utilização de técnicas próprias e com o avolumar de experiência em programação. Por exemplo, um trabalho de programação pode tornar-se muito mais fácil se o dividirmos sistematicamente em partes menos complexas (a abordagem do dividir para conquistar).

Fase da resolução do problema. Solução em forma de Passo difícil. algoritmo. Fase da Solução
Fase da
resolução do
problema.
Solução em
forma de
Passo difícil.
algoritmo.
Fase da
Solução em
implementação.
forma de
programa.

Em primeiro lugar, é importante separarmos a fase da resolução do problema

da tarefa a que chamamos a fase da implementação.

Na primeira fase, elaboramos um algoritmo para resolver a problema proposto e só quando esta fase estiver concluída é que passaremos á fase seguinte, que é a implementação desse algoritmo numa qualquer linguagem de programação.

Mas afinal o que é um Algoritmo?

Apesar de ser um termo novo para nós, o conceito é bastante familiar. As indicações dadas para se chegar a determinada rua constituem um algoritmo para se encontrar essa rua. Uma receita de cozinha é uma forma muito familiar de algoritmo. Uma planta de um arquitecto serve o mesmo propósito num projecto de construção de uma casa.

Linguagens de Programação – Módulo 1

Algoritmo é um conjunto de instruções organizadas de modo a obter determinado fim. A sua estrutura é sequencial, o que significa que cada instrução é executada após terminada a anterior, enquanto não se encontrar a instrução de fim.

Na iniciação à algoritmia usa-se uma pseudo-linguagem, visto que não é utilizada para programar de facto, mas que se considera facilmente adaptável

às diversas linguagens desenvolvidas para a programação de computadores.

Com tudo isto é necessário que os algoritmos desenvolvidos possuam determinadas características importantes. Em primeiro, as instruções de um algoritmo devem ser simples, sem ambiguidade e escritas numa ordem cuidadosamente definida. Além disto, os algoritmos devem ser efectivos, isto é, devem sempre resolver o problema utilizando um número finito de instruções, para que os custos de programação inerentes não sejam muito altos.

Tipos de Dados

O objectivo principal de qualquer computador é a manipulação de informação

ou dados. Estes dados podem ser vendas semanais de uma loja, nome e endereços de uma lista de clientes, notas finais de um curso, etc.

Como se pode constatar, existem diferenças óbvias na forma de representar cada um dos dados acima referenciados. Se pensarmos bem, as primeiras são representadas por valores numéricos e as segundas por sequências de caracteres.

A representação dos dados é só um lado da moeda, é necessário que

possamos efectuar operações com esses dados. Portanto, o tipo de dados

define também o conjunto de operações permitidas sobre esse dado.

   

Numéricos

Inteiro (Integer)

 

Real (Real)

Simples

Caracter

(Char)

e

Conjunto

de

caracteres (String)

 

Lógico (Boolean)

Tipos de

 

Dados

Cadeias de Caracteres (String)

 
 

Vector e Matriz (Array)

 

Registo (Record)

 

Estruturados

Conjunto (Set)

Ficheiro (File)

 

Linguagens de Programação – Módulo 1

Os tipos de dados para os quais se encontra a designação entre parêntesis, em inglês, correspondem a tipos de dados para a linguagem de programação Pascal.

Seguidamente vem uma breve descrição de cada tipo de dados.

Inteiro

Correspondem aos números inteiros da matemática. Não têm componentes decimais nem fraccionários e podem ser positivos ou negativos. São todos os números compreendidos entre –32768 e 32767, inclusive.

Exemplos: 23 7 -6 208 7830 -295

(Integer)

Real (Real)

Correspondem aos números decimais ou fraccionários da matemática. Também podem ser positivos ou negativos. Estão compreendidos:

Negativos: de -1,7x1038 até –2,9x10-39

 

Positivos: de 2,9x10-39 até 1,7x1038

Exemplos: 23.8 3.6752 -8.910 -56.321

 

Caracter

Este tipo de dados engloba todos os caracteres do código ASCII. Um dado deste tipo é representado por um símbolo ou caracter entre apóstrofes.

Exemplos: ‘a’ ‘b’ ‘*’ ‘=’ ‘$’ ‘ ‘ ‘£’

(Char)

Lógico

Este

tipo

de

dados

apresenta

somente

valores.

(Boollean)

Verdadeiro ou Falso

 

Cadeias

de

Exemplos: ‘Maria’

‘Olá’

‘500

‘4000 Porto’

 

Caracteres

 

(Strings)

Linguagens de Programação – Módulo 1

Operadores e Operações elementares

Podemos dividir os operadores em cinco grupos:

Operadores

Podemos dividir os operadores em cinco grupos: Operadores Aritméticos Booleanos Lógicos Funcionais Operadores de

Aritméticos

Booleanos

Lógicos

Funcionais

Operadores de cadeias de caracteres

Lógicos Funcionais Operadores de cadeias de caracteres Qualquer tipo de dado pode ser sujeito a operações

Qualquer tipo de dado pode ser sujeito a operações booleanas, o resultado destas operações assume sempre e somente um de dois valores possíveis, Verdadeiro ou Falso.

OPERADORES LÓGICOS

Operador

Significado

NOT

Negação Conjunção Disjunção (OU inclusivo)

AND

OR

Linguagens de Programação – Módulo 1

OPERADORES FUNCIONAIS (FUNÇÕES)

Operador

Função

ABS()

Valor absoluto

SQRT()

Raíz quadrada

INT()

Parte inteira

TRUNC()

Parte inteira

ROUND()

Valor arredondado

OPERADORES de STRINGS

Operador

 

Significado

Concatenação

(+)

É uma forma de juntar cadeias de caracteres.

Comparação (> < =

)

Idênticos aos relacionais.

PRIORIDADE DOS OPERADORES ARITMÉTICOS

^

Exponenciação

-

*

Sinal negativo

/

Multiplicação e Divisão MOD Divisão inteira

ABS

Módulo aritmético

+

-

Adição e Subtração

Linguagens de Programação – Módulo 1

PRIORIDADE DOS OPERADORES ARITMÉTICOS, LÓGICOS E RELACIONAIS

^

Exponenciação

-

Sinal negativo

*

/

Multiplicação e Divisão

MOD

Divisão inteira

ABS

Módulo aritmético

+

-

Adição e Subtração

> < =

Operadores Relacionais

NOT

Operador Lógico Negação

AND

Operador Lógico e

10º

OR

Operador Lógico ou

Variáveis e Expressões

Já vimos algumas operações fundamentais com dados numéricos. Vimos que é possível manipular os dados de várias formas, combinando as operações de forma a formar expressões mais elaboradas. Assim sendo, precisamos de um conceito que reúna tudo isto. A esse conceito designamos por Variável.

Num programa de computador, uma variável é uma entidade que possui um valor sendo conhecida no programa por um nome. O conceito de Variável não nos é totalmente estranho, já que o conhecemos da matemática.

Quem não ouviu falar do Teorema de Pitágoras. Por exemplo se identificarmos os lados de um triângulo por a, b e c como se pode ver na figura, temos então a seguinte relação a^2=b^2+c^2.

b

a c
a
c

Os nomes acima usados foram a, b e c. Em programação é conveniente usarem-se nomes mais significativos, como por exemplo LadoA, LadoB e Hipotenusa.

Temos de ter em atenção que não podemos dar qualquer nome a uma variável. Existem algumas regras que temos de cumprir no momento de atribuição dos nomes às variáveis. Regras essas, que são:

Linguagens de Programação – Módulo 1

O primeiro caracter deve ser sempre uma letra;

Os restantes caracteres poderão ser letras, algarismos e o caracter de ligação (_);

O nome da variável não pode ter espaços;

As palavras reservadas das linguagens de programação não podem ser atribuídas a nomes de variáveis;

Não são permitidos caracteres como por exemplo ç, é, ã, etc

Entrando agora no âmbito das expressões, temos que as expressões tal como nós as conhecemos (expressões matemáticas) vão ter que sofrer algumas alterações já que não poderão ser utilizadas, devido ao seu formato, em computadores.

Atribuição, Entrada e Saída de Dados

A Atribuição em programação consiste simplesmente em atribuir a uma

variável um valor que pode ser uma constante ou uma expressão. Esta

operação é representada em algoritmia pelo símbolo “

X 5, significa que a variável X possui a partir deste momento o valor 5. De realçar que se à variável tivesse sido atribuído anteriormente outro valor, ele era destruído aquando desta atribuição.

A Entrada de Dados está associada, como não podia deixar de ser, a um

periférico de entrada, sendo o mais utilizado o teclado. A partir este periférico, por exemplo, atribuem-se valores às variáveis que serão processadas pelos programas. O comando associado à entrada de dados e como será

reconhecido em algoritmia é: .

Exemplo:

De seguida o computador ficará à espera que sejam fornecidos os respectivos valores, o primeiro valor será atribuido à primeira variável (X) e o segundo valor à segunda variável (Y).

Linguagens de Programação – Módulo 1

Por fim, a Saída de Dados, por sua vez está associada a um periférico de saída sendo os mais comuns o monitor e a impressora, podendo-se assim mostrar os valores que as variáveis possuem a cada instante. O comando

associado é: .

Exemplo:

Passagem de Expressões matemáticas para expressões computacionais

Num

pseudocódigo.

algoritmo

EXEMPLO:

as

expressões

Expressão Matemática:

Expressão computacional:

são

escritas

com

A =

A

(

4× 5+ 3

)

7

( 4 * ( 5 + 3 ) )

simbologia

/ 7

própria

do

Linguagens de Programação – Módulo 1

Abordagem top-down

A abordagem top-down, abordagem descendente ou abordagem do topo para

a base, é um método de abordagem dos problemas em que se procuram

identificar os pontos essenciais da questão e se parte destes, dos pontos mais gerais para os mais particulares.

A modificação de componentes é mais fácil do que a modificação do todo. A

compreensão de cada subproblema é mais fácil do que a compreensão integral do problema. A verificação do funcionamento do algoritmo é mais simples em

blocos do que na sua globalidade.

CONSTRUÇÃO DE ALGORITMOS EM LINGUAGEM INFORMAL

EXEMPLO:

Como beber um copo de água?

Uma resposta simples em forma de algoritmo poderá ser:

Pegar num copo Colocá-lo debaixo de uma torneira Enchê-lo Levá-lo à boca Beber a água Pousar o copo

Na realidade a tarefa de encher um copo de água não é tão simples como parece.

Estando a água a cair da torneira para dentro do copo quando é que paramos?

Esta tarefa implica uma série de raciocínios sucessivos sobre um determinado estado de um objecto, até ter de se tomar uma decisão.

O copo está cheio ou não?

Só quando a resposta é afirmativa é que me decido a executar duas operações

sucessivas:

Retirar o copo

Fechar a torneira

Linguagens de Programação – Módulo 1

Início

ver se existe um copo se não existe fica-se com sede se existe estender a mão segurar o copo se não estiver debaixo da torneira colocar o copo debaixo da torneira se estiver debaixo da torneira abrir a torneira se o copo não estiver cheio manter a torneira aberta se o copo estiver cheio então fechar a torneira levar o copo à boca beber a água pousar o copo largar o copo

fim

Repare-se que há palavras que foram usadas intencionalmente e que correspondem a palavras reservadas no domínio da programação:

se

não

então

senão

início

fim

ou em inglês
ou em
inglês

if

not

then

else

begin

end

Basicamente, chega-se à conclusão de que qualquer processo, ou a resolução de qualquer problema, é sempre constituído por decisões e execução de processos elementares

Uma outra questão a salientar tem a ver com a indentação, ou seja, os espaços dados antes de se iniciar a escrita de cada linha.

espaços dados antes de se iniciar a escrita de cada linha. É um método que se

É um método que se usa para facilitar a leitura do algoritmo.

Linguagens de Programação – Módulo 1

EXEMPLO:

ver se existe um copo se não existe fica-se com sede se existe estender a mão

se não existe fica-se com sede se existe estender a mão Indentação SIMBOLOGIA: PSEUDOCÓDIGO E FLUXOGRAMAS

Indentação

SIMBOLOGIA: PSEUDOCÓDIGO E FLUXOGRAMAS

Em algoritmia e programação, para além das linguagens de programação, são utilizadas outras linguagens e formas de representação das instruções ou operações que indicamos nos algoritmos, nomeadamente:

PSEUDOCÓDIGO

FLUXOGRAMAS

OUTROS DIAGRAMAS

Uma das técnicas mais utilizadas para a representação de um algoritmo é:

PSEUDOLINGUAGEM

para a representação de um algoritmo é: PSEUDOLINGUAGEM PSEUDOCÓDIGO Não se deve fazer um algoritmo sem

PSEUDOCÓDIGO

Não se deve fazer um algoritmo sem uma boa análise.

Depois de termos o algoritmo desenhado, testado e representado graficamente

é necessário passar à codificação, utilizando a linguagem necessária.

PSEUDOCÓDIGO

É

computacional.

uma

das

formas

de

apresentação

de

algoritmos

para

linguagem

Linguagens de Programação – Módulo 1

É uma representação do algoritmo, escrito numa linguagem convencional com termos apropriados representativos de acções específicas.

Pseudocódigo Código escrito em que se utilizam termos convencionais para indicar as instruções do programa.

As instruções mais comuns em pseudocódigo são as que se referem às operações elementares de: Input ou Entrada de dados, Atribuição em Cálculos e Output ou Saída de dados.

LER() - inputAtribuição em Cálculos e Output ou Saída de dados. - operação de atribuição ESCREVER() - output

- operação de atribuição - operação de atribuição

ESCREVER() - output

As strings são incluídas entre aspas ( “ “ ) ou apóstrofes ( ‘ ‘ ).

EXEMPLO:

LER (Nome)

Lê a variável Nome Nome

LER(Idade)

Lê a variável Idade Idade

LER(Nota1, Nota2)

Lê as variáveis Nota1 e Nota2 Nota1 e Nota2

ESCREVER(“Olá Mundo!”)

Escreve Olá Mundo! Escreve

ESCREVER(Nome)

ESCREVER(“A idade é”, Idade)

EXEMPLO:

Nome

“Ana Oliveira”

Taxa

1.19

Prec

(Custo+Lucro)*1.19

T

Taxa

Escreve o conteúdo da variável Nome Nome

Escreve A idade é seguido do conteúdo A idade é seguido do conteúdo

da variável Idade

Linguagens de Programação – Módulo 1

Em pseudocódigo, uma instrução de atribuição (de um valor a uma Variável) escreve-se indicando:

O nome da variável

O sinal de atribuição ( )

O valor que se pretende atribuir à variável, podendo ser um valor numérico directo, uma outra variável ou uma expressão a calcular.

O pseudocódigo é uma linguagem computacional utilizada para escrita de

algoritmos.

O algoritmo escrito em pseudocódigo é composto pelo nome do algoritmo, os nomes das variáveis, os passos e as instruções em pseudocódigo.

Nome do algoritmo Nome genérico do algoritmo.

Nome das variáveis Variáveis utilizadas

Passos Descrição de cada instrução ou conjunto de instruções.

Instruções Instruções em pseudocódigo.

EXEMPLO:

Variáveis ida, idd: inteiro Inicio LER(ida) idd ida * 365 ESCREVER(‘A idade em dias é:’, Idd) Fim

A Lista de variáveis contém todas as variáveis utilizadas no programa, o

significado, o tipo de variável e a gama de valores que cada uma pode conter.

Linguagens de Programação – Módulo 1

LISTA DE VARIÁVEIS do Algoritmo IDADE_DIAS

NOME

SIGNIFICADO

TIPO

GAMA

Ida

Idade em anos

INTEIRO

[0, 100]

Idd

Idade em dias

INTEIRO

[0, 36500]

A Traçagem do algoritmo

A traçagem do algoritmo É a simulação sobre o algoritmo de modo a verificar se ele efectua a resolução do problema proposto.

1. Cria-se um mapa com várias colunas;

2. Colocam-se todas as variáveis no cabeçalho em colunas separadas;

3. Colocam-se todas as condições em colunas separadas;

4. Na última coluna colocam-se as saídas.

5. Preenche-se com os valores dados. (DATA)

TRAÇAGEM do algoritmo IDADE_DIAS

DATA: 18

Passo

Ida

Idd

SAÍDA

1. 18

     

2. 18

 

6570

 

3. 18

 

6570

A idade em dias é: 6570

Linguagens de Programação – Módulo 1

FLUXOGRAMA

Fluxograma = Diagrama de Fluxo É uma forma de representação de um algoritmo. É o grafismo que descreve de forma simples e fácil a leitura de um determinado algoritmo. O fluxograma utiliza formas gráficas convencionais através das quais se representam a sequência de acções dos algoritmos.

Os fluxogramas não são mais do que a representação gráfica de um algoritmo, tirando partido da maior facilidade de compreender através de uma ilustração. São uma ferramenta extremamente importante para compreender os algoritmos, desde que o problema em questão não seja muito complexo.

Os fluxogramas, são diagramas que representam os fluxos das acções contidas num algoritmo. Utilizam símbolos que representam os diversos tipos de acções e o seu inter-relacionamento na sequência de um programa.

Símbolos mais utilizados:

Simbolo

Significado

programa. Símbolos mais utilizados: Simbolo Significado Processamento Entrada ou Saída de dados   Decisão

Processamento

mais utilizados: Simbolo Significado Processamento Entrada ou Saída de dados   Decisão Condicional

Entrada ou Saída de dados

  Decisão
 

Decisão

Condicional

 

Escolha

Múltipla

Múltipla

  Conector
 

Conector

de Fluxos

Início ou Fim De algoritmo

Início ou Fim De algoritmo

Linha de Fluxo

Linha de Fluxo

Linguagens de Programação – Módulo 1

Vantagens

Como são baseados numa representação gráfica é fácil de visualizar a sua estrutura.

Os símbolos utilizados são normalizados.

Permitem uma rápida detecção e correcção de erros de lógica.

Desvantagens

Pouco práticos para efectuar alterações.

Não representam a estrutura dos dados.

Quando os programas são muito grandes, os fluxogramas, para os esquematizar, também se tornam grandes e complexos.