22
INTRODUÇÃO A PROGRAMAÇÃO Unidade I – INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PROFESSORA GELLARS TAVARES [email protected] 2015

UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

  • Upload
    akira

  • View
    229

  • Download
    0

Embed Size (px)

DESCRIPTION

introdução para programação.

Citation preview

Page 1: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTRODUÇÃO A PROGRAMAÇÃO

Unidade I – INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO

PROFESSORA GELLARS TAVARES

[email protected]

2015

Page 2: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTROD. PROGRAMAÇÃO – Professora Gellars Tavares – ano 2015 Página 2

CURSO: SI/ADS/GTI/REDES DISCIPLINA: INTROD. PROGRAMAÇÃO PROFESSORA: GELLARS TAVARES

Entendendo o Computador COMPUTADORES Dispositivo capaz de executar cálculos e tomar decisões lógicas em velocidades milhões, e até bilhões, de vezes mais rápidas do que os seres humanos; Computadores processam dados sob o controle de conjunto de instruções chamado de programas de computador; Estes programas de computador guiam o computador através de conjuntos ordenados de ações especificados por pessoas chamadas de programadores de computador. ARQUITETURA BÁSICA DO COMPUTADOR Modelo de Von Neumann

► Dispositivos de entrada – São dispositivos que captam dados, convertendo-os em sinais elétricos para que possam ser armazenados na Memória Principal. Exemplos: teclado, mouse, unidades de disco, scanner, unidade de DVD, pen drive, modem, etc.

► Dispositivos de saída – São dispositivos que convertem sinais elétricos para formas que possam ser entendidas pelo usuário, exibindo-os, quando for o caso, sob a forma de textos, imagens ou som. Exemplos: impressora, monitor, unidades de disco, unidade de DVD, plotter, pen drive, modem, etc.

► CPU (Central Processing Unit) – Unidade Central de Processamento: Formada pela Unidade de Controle (ULA – Unidade Aritmética e Lógica) e registradores.

Page 3: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTROD. PROGRAMAÇÃO – Professora Gellars Tavares – ano 2015 Página 3

Unidade de Controle – Gerencia as instruções de controle de fluxo de dados entre todos os componentes e é responsável pela busca e decodificação das instruções e por gerar sinais que possibilitam a execução da instrução. ULA – Responsável por qualquer operação aritmética, lógica ou de deslocamentos. Registradores – São áreas especiais de memória que podem, ou não, serem manipulados pelo programador. Geralmente, de alta velocidade para aumentar o fluxo entre a MP (memória principal) e os demais componentes. Memória Principal – É um dispositivo capaz de armazenar dados e programas que está associado à CPU. Sistemas de Barramento – Todos os componentes, CPU, Memória Principal e os dispositivos de E/S são interligados através de três barramentos: Dado/Endereço/Controle. • O computador só entende números! • Dispositivos de Entrada: convertem informações externas (usualmente fornecidas pelo usuário) em números para o computador.

• Dispositivos de Saída: convertem números fornecidos pelo computador em informações para o usuário.

Funcionamento da CPU Busca Instrução: CPU lê a memória em busca do que deve fazer. Lê entrada: Supondo que a instrução indica a leitura de um dado de entrada, CPU lê entrada. Busca Instrução: CPU lê a memória em busca do que deve fazer com dado lido. Cálculos: Supondo uma instrução de cálculo, a CPU realiza a operação Busca Instrução: CPU lê a memória em busca do que deve fazer Armazena dado: Supondo que a instrução solicitava armazenamento do dado na memória, guarda o mesmo na memória Busca Instrução: CPU lê a memória em busca do que deve fazer Apresenta saída: Supondo que a instrução indica que um dado deve ser apresentado ao usuário, CPU escreve na saída E assim sucessivamente... A Memória Principal • A Memória Principal é formada por células, sendo cada célula endereçável. • O tamanho da célula é expresso em bits. Logo, se uma célula é formada por n bits, teremos 2n possibilidades de valores, isto é, se a célula for formada por 8 bits, poderemos representar valores de 0 a 255.

Page 4: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTROD. PROGRAMAÇÃO – Professora Gellars Tavares – ano 2015 Página 4

Suponha que a memória seja um arquivo com várias gavetas: • Cada gaveta é chamada posição de memória • Cada gaveta possui um número que a identifica, chamado endereço de memória • Em cada uma das gavetas, cabe um único número

A memória principal (RAM) é...

O Que o Computador Entende? • O computador entende apenas números... • ...em um dialeto chamado “binário” 0101001010111b • O que significa isso? • Pode significar várias coisas, depende da interpretação! – Música, imagem, números... • Comecemos com os números! – Mas para entender os números do computador, precisamos primeiro entender os nossos!

Page 5: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTROD. PROGRAMAÇÃO – Professora Gellars Tavares – ano 2015 Página 5

Os Números Decimais • Temos DEZ dedos, contando ambas a mãos • Como consequência, lidamos com números DECIMAIS • Isso significa que cada um dos dígitos de um número pode ser preenchido com um de 10 símbolos diferentes: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 • Quando precisamos representar um número maior que 9, acrescentamos um dígito 1 à esquerda... E o dígito da direita volta a zero:

Os Números Binários • Para representar números, o computador conta apenas com sinais elétricos • Por motivo de precisão, apenas DOIS estados elétricos são usados para indicar números: ligado e desligado. • Cada “fio” do computador – pelo qual pode estar passando corrente elétrica ou não – representa um dígito para ele – chamado bit • Sendo assim, os números são compostos por apenas dois “símbolos”: 0, 1 • Quando precisamos representar um número maior que 1, acrescentamos um dígito 1 à esquerda... E o dígito da direita volta a zero: 0 1 10 11 100 REPRESENTAÇÃO DA INFORMAÇÃO O bit (BInary digiT) é a menor unidade de informação existente em um computador,

podendo assumir os valores 0 (zero) e 1 (um), o que tem relação com a arquitetura do processador;

Para cada dado, o computador utiliza diversos 0 e 1 seguidos: 0011010101001011. Podemos dizer então que o computador tem como base o sistema binário;

A unidade padrão de medida na Informática é o Byte (BinarY TErm), que é o conjunto de 8 (oito) Bits. A um caractere (letra, número, ou símbolo especial) associamos um byte, como ilustrado abaixo:

Page 6: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTROD. PROGRAMAÇÃO – Professora Gellars Tavares – ano 2015 Página 6

INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO LÓGICA MATEMÁTICA – Descreve as formas, as propriedades e as relações das

preposições, graças à construção de um simbolismo regulado e ordenado que permite diferenciar linguagem cotidiana e linguagem formalizada. A linguagem formal nada tem a ver com a linguagem cotidiana, pois se trata de uma linguagem inteiramente construída por ela mesma, baseada no modelo da matemática. (CHAUÍ, 2000).

LÓGICA DE PROGRAMAÇÃO – Uso correto das leis do pensamento, da “ordem da razão” e de processos de raciocínio e simbolização formais na programação de computadores, objetivando racionalidade e o desenvolvimento de técnicas que cooperem para a produção de soluções logicamente válidas e coerentes, que resolvam com qualidade os problemas que se deseja programar. (FORBELLONE, A.; EBERSPACHER, H., 2000).

DESAFIO Problema da Torre de Hanói - Eduard Lucas em 1883 Seja a seguinte situação:

deve-se mover todos os discos do primeiro eixo para o terceiro mantendo-se a ordem original

em cada movimento, pode-se mover apenas um disco um disco maior nunca poderá ser sobreposto por outro menor

LÓGICA Ciência que estuda as leis do raciocínio. Correção/validação do pensamento. Encadeamento/ordem de ideias. Arte de bem pensar. Modo de raciocinar: as soluções dos problemas utilizam a lógica para serem criadas, ou

seja, elas são ordenadas de uma forma que sejam possíveis de ser realizadas e de uma maneira que essa forma seja a mais adequada para o que se deseja obter.

Exemplos de aplicação da lógica O quarto está fechado e meu livro está no quarto. Então, preciso primeiro abrir o quarto para

pegar o livro. Rosa é mãe de Ana, Paula é filha de Rosa, Júlia é filha de Ana. Então, Júlia é neta de Rosa e

sobrinha de Paula. Todo mamífero é animal e todo cavalo é mamífero. Então, todo cavalo é animal. Todo mamífero bebe leite e o homem bebe leite. Então, todo homem é mamífero e animal

(mas não é um cavalo). PROGRAMAÇÃO O que é Programação? = ABSTRAÇÃO! A realidade é complexa e rica em detalhes!

Page 7: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTROD. PROGRAMAÇÃO – Professora Gellars Tavares – ano 2015 Página 7

Abstração

O que você abstrai dessa realidade? Abstração = Operação mental que observa a realidade e captura apenas os

aspectos relevantes para um contexto

NOÇÕES DE LÓGICA Em Lógica um conceito importante é o de “Proposição” Proposição: é um enunciado verbal, ao qual deve ser atribuído, sem ambiguidade, um valor lógico verdadeiro (V) ou falso (F). Exemplos de proposições: ► Ronaldinho Gaúcho é jogador de futebol. (V) ► 3 + 5 == 10 (F) ► 5 < 8 (V) Contraexemplos de Proposições: ► Onde você vai ? ► 3 + 5 ► Os estudantes jogam vôlei. (Quais ?) OPERAÇÕES LÓGICAS: São usadas para formar novas proposições a partir de proposições existentes.

– Considerando p e q duas proposições genéricas, podem-se aplicar as seguintes operações lógicas básicas sobre elas:

Page 8: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTROD. PROGRAMAÇÃO – Professora Gellars Tavares – ano 2015 Página 8

Definindo a prioridade:

Usar parênteses Exemplo: ((p v q)^(~q)) ou Obedecer (~) > (^) > (v)

Exemplos de aplicação das operações lógicas Considere: p = 7 é primo = (V) q = 4 é ímpar = (F) Então: 4 NÃO é ímpar = ~q = (~F) = (V) 7 NÃO é primo = ~p = (~V) = (F) 7 é primo E 4 NÃO é ímpar = p ^ ~q = (V ^ (~F)) = (V ^ V) = (V) 7 é primo E 4 é ímpar = p ^ q = (V ^ F) = (F) 4 é ímpar E 7 é primo = q ^ p = (F ^ V) = (F) 4 é ímpar E 7 NÃO é primo = q ^ ~p = (F ^ (~V)) = (F ^ F) = (F)

– Resumindo:

– Ou seja: – Não (~) troca o valor lógico. Se for F passa a ser V e vice-versa. – E (^) só tem valor V quando as duas proposições forem V. Basta uma

proposição ser F para o resultado ser F. – OU (v) só tem valor F quando as duas proposições forem F. Basta uma

proposição ser V para o resultado ser V. ALGORITMO Um procedimento passo a passo para a solução de um problema. Sequência lógica e não ambígua de instruções que levam à solução de um problema num

tempo finito. Sequência lógica de instruções que devem ser seguidas para a resolução de um problema ou

para a execução de uma tarefa. Algoritmo é a descrição de um conjunto de comandos que, obedecidos, resultam numa

sucessão finita de ações;

p q p ^ q p v qV V V VV F F VF V F VF F F F

~pFFVV

pp qq p ^ qp ^ q p v qp v qVV VV VV VVVV FF FF VVFF VV FF VVFF FF FF FF

~p~pFFFFVVVV

Page 9: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTROD. PROGRAMAÇÃO – Professora Gellars Tavares – ano 2015 Página 9

– Ação é um acontecimento que, a partir de um estado inicial, após um período de tempo finito, produz um estado final previsível e bem definido;

A construção de algoritmo consiste na primeira fase de resolução de problemas utilizando-se recursos computacionais. Somente após a sua construção, verificação de sua correção e codificação, tem-se um programa;

– Um programa é a formalização de um algoritmo em uma determinada linguagem de programação, segundo suas regras de sintaxe e semântica, de forma que o computador possa entender a sequência de ações;

A base da boa programação consiste na construção de bons algoritmos. Alguns passos:

– Compreender o problema identificando as suas entradas e saídas; – Desenvolver um procedimento para a solução do problema; – Verificar manualmente a sua correção; – Codificar o algoritmo; – Executá-lo e testá-lo; – Refinar se necessário, o algoritmo e documentá-lo.

CARACTERÍSTICAS BÁSICAS DE UM ALGORITMO: Sequência lógica

As instruções devem ser definidas em uma ordem correta. Não ambígua

A sequência lógica e as instruções não devem dar margem à dupla interpretação. Solução de um problema

A sequência lógica deve resolver exatamente (nem mais e nem menos) o problema identificado. Tempo finito

A sequência lógica não deve possuir iterações infinitas.

Exemplos de algoritmos – Receitas de comidas – Coreografia – Manuais de instalação

Contraexemplos de algoritmos – Listas de compras – Dança informal – Índice remissivo de um livro

Algoritmo Textual Informal Modo de preparo de um bolo:

– Bata a margarina, as gemas e o açúcar até ficar cremoso. – Junte o leite, o coco e a farinha e continue batendo. – Acrescente o fermento e, por último, as claras em neve. – Unte uma forma com manteiga e leve ao forno para assar.

Algoritmo Textual Informal Refinado Modo de preparo:

– Bata a margarina, as gemas e o açúcar por 15 minutos – Junte o leite, o coco e a farinha e continue batendo por mais 15 minutos – Acrescente 20 g de fermento e, por último, às claras em neve – Unte uma forma com manteiga e leve ao forno para assar por 30 minutos

Page 10: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTROD. PROGRAMAÇÃO – Professora Gellars Tavares – ano 2015 Página 10

Atenção: – Um algoritmo é “uma solução” e não “a solução” de um problema.

Um problema pode ser resolvido por mais de um algoritmo! – Tarefas que possuem “padrão de comportamento” podem ser descritas por um

algoritmo. Ex: Qual será o próximo número das sequências a) 0,1,4,9,16,25? b) 7,8,10,13,17? Lógica de Programação = É o encadeamento lógico de instruções para o

desenvolvimento de programas. Programa = É a implementação das instruções (codificação+tradução+execução) de um

algoritmo em uma linguagem de programação. Estes programas podem ser escritos em Linguagem de máquina, ou ainda em

linguagens de programação tais como: C, C++, Cobol, VB, dentre outros. Instrução = Informação que representa uma ação elementar que deve ser executada.

Atenção O “;” (ponto-e-vírgula) indica o fim de uma instrução!

RESUMINDO Algoritmo – sequência de etapas que visam atingir um objetivo específico. Por exemplo,

resolver um determinado problema; Programa - conjunto de comandos específicos que traduzem para o computador o que um

algoritmo determinou que deva ser realizado. Existe a necessidade da construção de modelos do mundo real, de forma que seja possível

traduzir isso para a linguagem de computadores. Os principais problemas encontrados no desenvolvimento de algoritmos são:

• Dificuldade na resolução de problemas; • Dificuldade na interpretação de enunciados; e • Dificuldade em abstrair e formalizar informações.

Dessa forma, é necessário desenvolver essas habilidades, começando pela solução de problemas sem a necessidade do uso de ferramentas computacionais.

Lógica - Modo de raciocinar: As soluções dos problemas utilizam a lógica para serem criadas, ou seja, elas são ordenadas de uma forma que sejam possíveis de ser realizadas e de uma maneira que essa forma seja a mais adequada para o que se deseja obter (a ordenação do procedimento da solução segue uma lógica de raciocínio; a formalização dos procedimentos de resolução de problemas precisa ser refinada para aproximar-se do que será aplicado na prática: a lógica de programação);

Lógica de programação - “uso correto das leis do pensamento, da ‘ordem da razão’ e de processos de raciocínio e simbolização formais na programação de computadores, objetivando racionalidade e o desenvolvimento de técnicas que cooperem para a produção de soluções logicamente válidas e coerentes, que resolvam com qualidade os problemas que se deseja programar”. (Forbellone; Eberspacher, 2005).

Page 11: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTROD. PROGRAMAÇÃO – Professora Gellars Tavares – ano 2015 Página 11

POR QUE APRENDER ALGORITMOS? Para desenvolver o raciocínio lógico e conceber uma solução a um dado problema,

independente de uma linguagem de programação (Ex: Pascal, C e Java). Porque, a partir do algoritmo desenvolvido, fica mais fácil implementar o respectivo

programa. Segundo grandes pesquisadores...

– “A noção de algoritmo é básica para toda a programação de computadores”. KNUTH KNUTH - Professor da Universidade de Stanford e autor da coleção “The art

of computer programming”. – “O conceito central da programação e da ciência da computação é o conceito de

algoritmo”. WIRTH WIRTH - Professor da Universidade de Zurique, autor de diversos livros na

área e responsável pela criação de linguagens de programação como ALGOL, PASCAL e MODULA -2.

Estruturas básicas de um algoritmo: – Sequência – Início/Fim

Define uma estrutura onde as instruções serão executadas na ordem que aparecem.

– Seleção (ou Condicional)– Se-Então/Senão Define uma estrutura condicional que, dada a sua avaliação (V ou F),

determina qual “caminho” do algoritmo será executado. – Repetição – Repita (Faça/enquanto), Enquanto ou Para

Define uma estrutura de iteração condicional (V ou F) ou contada (predefinida) de instruções.

Algoritmo para ligar de um telefone público – Sequência Início 1- Tirar o fone do gancho; 2-Ouvir o sinal de linha; 3- Introduzir o cartão; 4- Teclar o número desejado; 5- Conversar; 6- Desligar; 7- Retirar o cartão; Fim. Algoritmo para ligar de um telefone público – Seleção Início 1- Tirar o fone do gancho; 2- Se ouvir o sinal de linha, então 2.1 Introduzir o cartão; 2.2 Teclar o número desejado; 2.3 Conversar; 2.4 Desligar; 2.5 Retirar o cartão; 3- Senão 3.1 Ir para o próximo telefone; Fim.

Este algoritmo usa uma estrutura de sequência

“Inicio/Fim”

Este algoritmo usa uma estrutura de decisão

“Se-então/senão”

Page 12: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTROD. PROGRAMAÇÃO – Professora Gellars Tavares – ano 2015 Página 12

Algoritmo para ligar de um telefone público – Repetição Início {o telefone precisa estar funcionando} 1- Repita 1- Tirar o fone do gancho; 2- Se ouvir o sinal de linha então 2.1 Introduzir o cartão; 2.2 Teclar o número desejado; 2.3 Conversar; 2.4 Desligar; 2.5 Retirar o cartão; 3- Senão 3.1 Desligar; 4. Continua(S/N) 2- Até Continua=‘N’ Fim.

E se o telefone chamado estiver com defeito? E se o telefone chamado estiver ocupado? E se acabarem os créditos do cartão telefônico? E se...?

É normal que um algoritmo sofra melhorias sucessivas. (Técnica de refinamentos sucessivos)

SISTEMA COMPUTACIONAL

A programação de um sistema computacional pode ser resumida em 3

passos básicos: Entrada, Processamento e Saída.

Arquitetura de Von Newman

Este algoritmo usa uma estrutura de repetição

“Repita/Até”

Page 13: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTROD. PROGRAMAÇÃO – Professora Gellars Tavares – ano 2015 Página 13

Exemplo 1 – Exibir a média de dois números

Exemplo 2 – Exibir se o aluno está aprovado ou reprovado

LINGUAGENS DE PROGRAMAÇÃO O conjunto de instruções, que será executado pelo processador, é

chamado de linguagem de máquina. As linguagens de programação são classificadas de acordo com a

similaridade que esta linguagem tem com a linguagem de máquina.

Processamento

Entrada

Saída

Dispositivo de Entrada

Dispositivo de Saída

Memória

UCP

6 , 8 (6 + 8) / 2

7

Processamento

Entrada

Saída

Dispositivo de Entrada Dispositivo

de Saída Memória

UCP

Ana, 5, 3 Se (5+3)/2>=7 aprovado Senão reprovado

Ana, reprovado

Page 14: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTROD. PROGRAMAÇÃO – Professora Gellars Tavares – ano 2015 Página 14

Tipos de Linguagens de Programação 1 - Totalmente codificadas em binário (0´s e 1´s) 2 - Usam instruções simbólicas para representar os 0´s e 1´s 3 - Voltadas para facilitar o raciocínio humano

Um computador compreende apenas linguagens compostas por números

0’s e 1’s. Então imagina criar um programa utilizando apenas esses números, isso

seria extremamente complicado. Por esse motivo foi necessário a criação de um código que relacionasse a

linguagem de máquina a uma linguagem mais fácil de ser compreendida. Dessa forma, foi criada uma linguagem de montagem (chamada

Assembly) que é um código que tem uma instrução alfanumérica para cada instrução numérica em linguagem de máquina.

FORMAS DE REPRESENTAR UM ALGORITMO

Algoritmos podem ser representados, dentre outras maneiras, por:

PSEUDOCÓDIGO – Também chamado de PORTUGUÊS ESTRUTURADO.

DESCRIÇÃO NARRATIVA – Linguagem natural para especificar os passos de uma tarefa.

FLUXOGRAMA – Também chamado de DIAGRAMA DE BLOCOS, representação gráfica dos passos de uma tarefa.

DIAGRAMA DE CHAPIN – Também chamado de DIAGRAMA DE NASSI-SHNEIDERMAN, diagrama com visão hierárquica e estruturada.

Linguagem

Assembly

( Mnem ô nica )

LOAD R1, val1

LOAD R2, val2

ADD R1, R2

STORE R1, val2

Linguagem

de

M á quina

0010 0001 1110

0010 0010 1111

0001 0001 0010

0011 0001 1111

Linguagem

de

Alto N í vel

val2 = val1+val2

Baixo Nível Alto Nível

Um algoritmo é “uma solução” e não “a solução” de um problema. Um problema pode ser resolvido por mais de um algoritmo!

Page 15: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTROD. PROGRAMAÇÃO – Professora Gellars Tavares – ano 2015 Página 15

Exemplos de representação de um algoritmo

Diagrama de Blocos

Exemplo: Algoritmo para converter uma temperatura em Fahrenheit para Celsius Descrição narrativa do algoritmo Fahrenheit-Celsius:

- solicite a temperatura em Fahrenheit; - transforme a temperatura em Fahrenheit para Celsius; - informe a temperatura em Celsius. Antes, veremos os símbolos para elaborar um fluxograma (Diagrama de Módulos)

Seus principais símbolos gráficos são:

Agora voltaremos ao exemplo: Fluxograma do algoritmo Fahrenheit-Celsius

Page 16: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTROD. PROGRAMAÇÃO – Professora Gellars Tavares – ano 2015 Página 16

Linguagem algorítmica (pseudocódigo) A forma geral de um algoritmo em pseudocódigo:

Algoritmo <nome_do_algoritmo> [<declaração_de_variáveis>] Início <corpo_do_algoritmo> Fim. LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO)

Onde:

Algoritmo Indica o início da definição do algoritmo.

<nome_do_algoritmo>

Nome dado ao algoritmo para distingui-lo dos demais.

[<declaração_de_variáveis>] Parte opcional onde são declaradas as variáveis usadas

no algoritmo e, eventualmente, nos sub-algoritmos (partes de um algoritmo).

LINGUAGEM ALGORÍTMICA (PSEUDOCÓDIGO)

Onde:

[<subalgoritmos>] Parte opcional onde são definidos os sub-algoritmos

(quebra do algoritmo em partes: modularização).

Início Palavra que delimita o início do corpo do algoritmo.

<corpo_do_algoritmo>

Conjunto de instruções do algoritmo.

Fim Palavra que delimita o término do corpo do algoritmo.

Page 17: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTROD. PROGRAMAÇÃO – Professora Gellars Tavares – ano 2015 Página 17

Pseudocódigo do algoritmo Fahrenheit-Celsius programa Fahrenheit-Celsius var real Fahrenheit, Celsius; início

leia (Fahrenheit); Celsius ← 5 /9 * (Fahrenheit – 32); escreva (Celsius);

fim COMPARATIVO ENTRE AS FORMAS DE REPRESENTAÇÃO:

Linguagem C++ #include<iostream> using namespace std; int main() { float Fahrenheit, Celsius; cout<<"Digite Temperatura em Fahrenheit: "; cin>>Fahrenheit; Celsius = 5 /9 * (Fahrenheit - 32); cout<<"Temperatura em Celsius = "<<Celsius<<"\n"; system("pause"); }

Page 18: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTROD. PROGRAMAÇÃO – Professora Gellars Tavares – ano 2015 Página 18

Tarefas que possuem “padrão de comportamento” podem ser descritas por um algoritmo. PSEUDOCÓDIGO Início real NOTA1, NOTA2, MEDIA; Leia (NOTA1, NOTA2); MEDIA := (NOTA1 + NOTA2) / 2; SE MEDIA >= 5 escreva ( “Aprovado” ); SENÃO escreva ( “Reprovado”); Fim VANTAGENS E DESVANTAGENS TIPOS DE DADOS PRIMITIVOS

• Numéricos – Inteiros: dados numéricos positivos e negativos pertencentes ao

conjunto de números inteiros, excluindo qualquer valor numérico fracionário. Ex. 10, 0, -3, etc.;

– Reais: dados numéricos positivos e negativos pertencentes ao

conjunto de números inteiros, incluindo qualquer valor numérico fracionário e inteiro. Ex. 10, 0, -34.435, etc.;

• Não-numéricos – Caracteres: sequência de valores delimitados por aspas (“ “)

formados por letras (de A até Z), números (0 até 9) e símbolos (%,@,$,...). Este tipo também é conhecido como alfanumérico, string, literal ou cadeia. Ex. “q”, “linguagem c++”;

– Lógicos: dados que sugerem uma única opção entre duas possibilidades existentes: verdadeiro ou falso, sim ou não, 1(um) ou 0 (não).

Vantagens Desvantagens Descrição Narrativa

O português é bastante conhecido por nós.

Imprecisão. Pouca confiabilidade (a imprecisão

acarreta a desconfiança). Extensão (normalmente, escreve-se

muito para dizer pouca coisa). Fluxograma Padrão mundial.

Ferramenta bem conhecida. Figuras dizem muito mais que

palavras.

Complica-se à medida que o algoritmo cresce.

Pouca atenção aos dados, não oferecendo recursos para declará-los.

Linguagem Algorítmica

Independência de linguagem de programação.

Usa o português como base. Define-se melhor quais e como os

dados vão estar estruturados. Passagem quase imediata do

algoritmo para uma linguagem de programação qualquer.

Exige a definição de uma linguagem não real para trabalho.

Não é padronizada.

FLUXOGRAMA

Page 19: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTROD. PROGRAMAÇÃO – Professora Gellars Tavares – ano 2015 Página 19

CONSTANTES

• Tudo que é fixo, estável, inalterável, imutável, contínuo, invariável, de valor fixo;

• As constantes não sofrem alterações ao longo do programa. Exemplos: pi = 3.14159265 resultado = “aprovado” situacao = .falso. VARIÁVEIS

• Variável é tudo aquilo que é sujeito a variações, que é incerto instável ou inconstante;

• As informações variáveis são armazenadas na memória do computador; • A memória pode ser vista como um conjunto de gavetas. Para utilizar

uma gaveta é preciso identificá-la com uma etiqueta. A identificação é feita pelo nome da variável;

• Cada variável guarda uma informação de cada vez, sendo sempre do mesmo tipo.

• Todo valor atribuído a uma variável será feito por meio do símbolo de atribuição:

em algoritmo: ← (uma seta) em C++: = (igual) em Pascal: := (dois pontos igual)

Ex. de declaração de variável: real nota; Ex. de atribuição em uma variável: nota = 5.7; REGRAS DE DEFINIÇÃO DE IDENTIFICADORES

• Constantes e variáveis são identificadores. As regras de definição de nomes devem ser observadas:

– O primeiro caractere do identificador deve ser sempre alfabético. Os demais podem ser alfanuméricos;

– Não podem ser utilizados espaços em branco para formação de identificadores com nomes compostos. Os nomes deverão ser separados por sublinhado (_);

– Não podem ser utilizados caracteres especiais; – Não podem ser utilizadas palavras reservadas; – Os nomes devem refletir o conteúdo do identificador;

• Exs. Válidos: nome, nome_usuario, fone1; • Exs. Inválidos: 1X, fone#, inteiro, nome usuario;

Page 20: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTROD. PROGRAMAÇÃO – Professora Gellars Tavares – ano 2015 Página 20

OPERADORES ARITMÉTICOS: são as operações aritméticas básicas

Símbolo Significado / Divisão * Multiplicação + Adição - Subtração

ou mod Resto da divisão de inteiros div Quociente da divisão de inteiros

Soma - Na matemática, representada pelo sinal + e, em expressões em termos computacionais, pelo mesmo sinal. A + B Expressão que simboliza a soma do valor de duas variáveis. 2 + 3 Nesta expressão, o valor retornado é a soma dos valores dados, isto

é, 5. Subtração - Na matemática, representada pelo sinal - e, em expressões em termos computacionais, pelo mesmo sinal. A - B Expressão que simboliza a subtração do valor de duas variáveis. 3 - 2 Nesta expressão, o valor retornado é o resto, isto é, 1. Multiplicação - Na matemática, representada pelos sinais x ou. e, em expressões em termos computacionais, pelo sinal * . B * D Expressão que simboliza a multiplicação do valor de duas variáveis. 3 * 2 Nesta expressão, o valor retornado é o produto dos valores dados,

isto é, 6.

Divisão - Na matemática, representada pelo sinal e, em expressões

computacionais, pelo sinal /. A / B Expressão que simboliza a divisão do valor de duas variáveis. 6 / 2 Nesta expressão, o valor retornado é a divisão dos valores dados,

que, no caso, será equivalente a 3. 5 / 2 Nesta expressão, o valor retornado é a divisão dos valores dados,

que no caso será equivalente a 2,5. % - Resto (em outras linguagens, conhecido como mod). É usado em expressões em termos computacionais quando se deseja encontrar o resto da divisão de dois números inteiros. K % Y Expressão que simboliza a intenção de achar o valor do resto da

divisão do valor da variável K pelo valor da variável Y. 5 % 2 Nesta expressão, o valor retornado é o resto da divisão do primeiro

pelo segundo número que, no caso, será equivalente a 1. 7 % 4 Nesta expressão, o valor retornado é o resto da divisão do primeiro

pelo segundo número que, no caso, será equivalente a 3.

Page 21: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTROD. PROGRAMAÇÃO – Professora Gellars Tavares – ano 2015 Página 21

Observação: Normalmente, as linguagens de programação assumem que a divisão é uma operação que retorna um valor REAL. Atenção especial, portanto, para variáveis que receberão o resultado de uma divisão. Em algumas linguagens, quando se divide dois números inteiros, o resultado será um inteiro.

PRIORIDADE OPERADORES RELACIONAIS: são operadores binários (de mesma prioridade) que somente retornam os valores lógicos V ou F.

Símbolo Significado

== ou = Igual a

> Maior que

< Menor que

>= Maior ou igual a

<= Menor ou igual a

!= ou <> Diferente

Como exemplos de Expressões relacionais têm:

A != B X == 1 7 > 6 8 < 9

1 <= Y 4 >= W

A diferente de B X é igual a 1

7 maior que 6 8 menor que 9

1 é menor ou igual ao valor da variável Y 4 é maior ou igual ao valor da variável W

PRIORIDADE

Operador Precedência

() Calculados em primeiro lugar da esq. p/ dir. *, / ou % Calculados em segundo lugar da esq. p/ dir.

+ ou - Calculados em terceiro lugar da esq. p/ dir. <, <=, > ou >= Calculados em quarto lugar da esq. p/ dir.

== ou != Calculados em quinto lugar da esq. p/ dir. = Calculados em último lugar da dir.p/ esq.

Operador Precedência

( ) Calculados em primeiro lugar da esq. p/ dir.

*, / ou % Calculados em segundo lugar da esq. p/ dir.

+ ou - Calculados por último da esq. p/ dir.

Page 22: UNIDADE 1 - INTROD PROGRAMA- ¢Ã-§Ã-£O

INTROD. PROGRAMAÇÃO – Professora Gellars Tavares – ano 2015 Página 22

Estes somente são usados para efetuar comparações, as quais só podem ser feitas entre dados do mesmo tipo.

O resultado de uma comparação é sempre um valor lógico. OPERADORES LÓGICOS OU BOOLEANOS: são usados para combinar expressões relacionais e lógicas. Também retornam como resultado valores lógicos V ou F. Operador lógico de disjunção ( e )

Op. Lóg. de Disjunção .e.

Cond.1 Cond.2 Resultado

F F F

V F F

F V F

V V V

Operador lógico de conjunção ( ou )

Op. Lóg. de Conjunção .ou.

Cond.1 Cond.2 Resultado

F F F

V F V

F V V

V V V

Operador lógico de negação ( não )

Op. Lóg. de Negação .não.

Condição Resultado

V F

F V

ORDEM DE PRIORIDADES

Operador Prioridade

Aritméticos 1

Relacional 2

Lógico 3