33
INTRODUÇÃO A PROGRAMAÇÃO THOBER CORADI DETOFENO, MSC. Aula 06 JOINVILLE 2013 Universidade do Estado de Santa Catarina – CCT/UDESC

INTRODUÇÃO A PROGRAMAÇÃO

  • Upload
    caine

  • View
    43

  • Download
    0

Embed Size (px)

DESCRIPTION

Universidade do Estado de Santa Catarina – CCT/UDESC. INTRODUÇÃO A PROGRAMAÇÃO. THOBER CORADI DETOFENO, MSC. Aula 06. JOINVILLE 2013. Algoritmo. - PowerPoint PPT Presentation

Citation preview

Page 1: INTRODUÇÃO A PROGRAMAÇÃO

INTRODUÇÃO A PROGRAMAÇÃO

THOBER CORADI DETOFENO, MSC.

Aula 06

JOINVILLE2013

Universidade do Estado de Santa Catarina – CCT/UDESC

Page 2: INTRODUÇÃO A PROGRAMAÇÃO

AlgoritmoA automação é o processo em que uma tarefa deixa de ser desempenhada pelo homem e passa a ser realizada por

máquinas, sejam estas dispositivos mecânicos, eletrônicos (como os computadores) ou de natureza mista. Para que a automação de uma tarefa seja bem sucedida é necessário que a máquina que passará a realizá-la seja

capaz de desempenhar cada uma das etapas constituintes do processo a ser automatizado com eficiência, de modo a garantir a repetibilidade do mesmo. Assim, é necessário que seja especificado com clareza o que deve ser realizado em cada uma das fases do processo a ser automatizado, bem como a seqüência em que estas fases devem ser realizadas.

Algoritmo Conjunto de regras e operações bem definidas e ordenadas, destinadas à solução de um problema, ou de uma classe de problemas, em um número finito de etapas Representação de uma solução para um problema.

Programa Seqüência completa de instruções a serem executadas por um computador De acordo com um algoritmo.

Ao contrário do que se pode pensar, o conceito de algoritmo não foi criado para satisfazer às necessidades da computação. Pelo contrário, a programação de computadores é apenas um dos campos de aplicação dos algoritmos. Na verdade, há inúmeros casos que podem exemplificar o uso (involuntário ou não) de algoritmos para a padronização do exercício de tarefas rotineiras.

Para que um computador possa desempenhar uma tarefa é necessário que esta seja detalhada passo a passo, numa forma compreensível pela máquina, utilizando aquilo que se chama de programa. Neste sentido, um programa de computador nada mais é que um algoritmo escrito numa forma compreensível pelo computador.

Page 3: INTRODUÇÃO A PROGRAMAÇÃO

O algoritmo, do ponto de vista computacional, tem um papel fundamental por ser o elo de ligação entre dois mundos (real e computacional).

A atividade de programação começa com a construção do algoritmo.

Algoritmo

Um algoritmo não é a solução do problema, pois, se assim fosse, cada problema teria um único algoritmo; um algoritmo é um caminho para a solução de um problema.

Page 4: INTRODUÇÃO A PROGRAMAÇÃO

Partes básicas de um AlgoritmoUm algortimo quando programado num

computador e constituido pelo menos das 3 partes, sendo elas:

1. Entrada de dados;2. Processamento de dados;3. Saida de dados;

Na parte de entrada, sao fornecidas as informacoes necessarias para que o algoritmo possa ser executado. Estas informacoes podem ser fornecidas no momento em que o programa esta sendo executado ou podem estar embutidas dentro do mesmo.

Page 5: INTRODUÇÃO A PROGRAMAÇÃO

Representações dos AlgoritmosExistem algumas formas de representação de algoritmos: Descrição Narrativa; Fluxograma: Representação gráfica.

A representação gráfica é mais concisa que a representação textual.

É necessário aprender a simbologia dos fluxogramas. Pseudocódigo (Português estruturado): Representação

textual. A transcrição para qualquer linguagem de

programação é quase direta. É necessário aprender as regras do pseudocódigo.

Outros diagramas (ER, UML,...)

Page 6: INTRODUÇÃO A PROGRAMAÇÃO

Algoritmo – Descrição NarrativaNesta forma de representação os algoritmos são expressos

diretamente em linguagem natural. Como exemplo, têm-se os algoritmos seguintes:

Page 7: INTRODUÇÃO A PROGRAMAÇÃO

ExercíciosDescrição Narrativa

1) Escreva um algoritmo para Fazer um Sanduíche.

2) Escreva um algoritmo para uma Receita de bolo.

3) Escreva um algoritmo para o problema de Troca de um pneu furado.

4) Escreva um algoritmo para o Calcular a média de um aluno.

5) Tem-se tres garrafas, com formatos diferentes, uma cheia ate a boca com capacidade de 8 litros e as outras duas vazias com capacidades de cinco e tres litros, respectivamente. Deseja-se separar o conteudo da primeira garrafa em duas quantidades iguais. Elabore um algoritmo que consiga realizar a tarefa, sem que se possa fazer medidas.

Page 8: INTRODUÇÃO A PROGRAMAÇÃO

Fluxograma É uma representação gráfica de algoritmos onde formas geométricas

diferentes implicam ações (instruções, comandos) distintos. Tal propriedade facilita o entendimento das idéias contidas nos algoritmos e justifica sua popularidade.

Há vários padrões que definem as formas geométricas das figuras que devem ser usadas para representar cada um dos diversos tipos de instruções; contudo, nenhum deles se sobressai com relação aos demais no que diz respeito à aceitação por parte dos usuários.

De modo geral, um fluxograma se resume a um único símbolo inicial, por onde a execução do algoritmo começa, e um ou mais símbolos finais, que são pontos onde a execução do algoritmo se encerra. Partindo do símbolo inicial, há sempre um único caminho orientado a ser seguido, representando a existência de uma única seqüência de execução das instruções. Isto pode ser melhor visualizado pelo fato de que, apesar de vários caminhos poderem convergir para uma mesma figura do diagrama, há sempre um único caminho saindo desta. Exceções a esta regra são os símbolos finais, dos quais não há nenhum fluxo saindo, e os símbolos de decisão, de onde pode haver mais de um caminho de saída (usualmente dois caminhos), representando uma bifurcação no fluxo.

Page 9: INTRODUÇÃO A PROGRAMAÇÃO

Fluxograma – Notação simplificada

Page 10: INTRODUÇÃO A PROGRAMAÇÃO

Exemplos de Fluxograma

Page 11: INTRODUÇÃO A PROGRAMAÇÃO

Fluxograma – Controle de Fluxo

Page 12: INTRODUÇÃO A PROGRAMAÇÃO

Exemplos de Fluxograma

Page 13: INTRODUÇÃO A PROGRAMAÇÃO

ExercíciosFaça um fluxograma para as seguintes questões:

1) Obter o resultado da multiplicação de dois números inteiros quaisquer fornecidos pelo usuário.

2) Aplique um desconto de 30% sobre o valor de um produto, recebido como entrada, e retorne o resultado da manipulação na saída padrão.

3) Tendo como dados de entrada a distância total (em km) percorrida por um automóvel e a quantidade de combustível (em litros) consumida para percorrê-la, calcule e imprima o consumo médio de combustível.

4) Leia dois valores inteiros e apresente a diferenca do maior pelo menor.

5) O sistema de nota de uma instituicao atribui notas aos alunos atraves de conceito. Sabendo das faixas associadas a cada conceito, faca um fluxograma que leia 3 notas de um aluno, calcule a media e informe a qual conceito a media esta relacionada.

6) Exibir todos os numeros pares de um a 100.

Page 14: INTRODUÇÃO A PROGRAMAÇÃO

Pseudocodigo

O pseudocodigo e uma maneira intermediaria entre a linguagem natural e uma linguagem de programação de representar um algoritmo. Ela utiliza um conjunto restrito de palavras-chave, em geral na lingua nativa do programador, que tem equivalentes nas linguagens de programacao.

Alem disso, o pseudocodigo nao requer toda a rigidez sintatica necessaria numa linguagem de programacao, permitindo que o aprendiz se detenha na logica do algoritmos e nao no formalismo da sua representacao. Na medida em que se obtem mais familiaridade com os algoritmos, então o pseudocodigo pode ser traduzido para uma linguagem de programacao.

Page 15: INTRODUÇÃO A PROGRAMAÇÃO

Pseudocodigo

A estrutura geral de um algoritmo é:

algoritmo "<nome do algoritmo>"

var

< declaração de variáveis>

inicio

< lista de comandos>

fimalgoritmo

Page 16: INTRODUÇÃO A PROGRAMAÇÃO

Exemplo de Pseudocódigoalgoritmo "soma dois numeros"

// Função :

// Autor :

// Data : 30/3/2010

// Seção de Declarações

var

n1, n2, d: inteiro

inicio

// Seção de Comandos

escreval("Digite dois numeros")

leia(n1)

leia(n2)

d<-n1+n2

escreva("A soma eh igual a ", d)

fimalgoritmo

VisuAlg

Page 17: INTRODUÇÃO A PROGRAMAÇÃO

Métodos de Representação de Algoritmo

Escrever algoritmos e, por fim, programar, consiste em dividir qualquer problema em vários passos menores, usando uma ou mais formas de representação.

Esses passos que compõem o algoritmo são denominados de instruções.

Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Grosso modo, estas informações poderão ser classificadas em dois tipos:

· As instruções, que comandam o funcionamento da máquina e determinam a maneira como devem ser tratados os dados. As instruções são específicas para cada modelo de computador, pois são função do tipo particular de processador utilizado em sua implementação.

· Os dados propriamente ditos, que correspondem à porção das informações a serem processadas pelo computador.

Page 18: INTRODUÇÃO A PROGRAMAÇÃO

Elementos básicos para construção de um Algoritmo

Nome da Variável As variáveis são elemento de dado cujo valor pode ser modificado

ao longo de sua execução.

Os nomes das variáveis devem começar por uma letra e depois pode conter letras, números ou underline, até um limite de 30 caracteres. As variáveis podem ser simples ou estruturadas. Não pode haver duas variáveis com o mesmo nome.

Uma variável representa uma posição na memória e pode ter seu tipo de dados como inteiro, caractere, real; tamanho (16, 32 bits, ...) e nome definidos.

A seção de declaração de variáveis começa com a palavra-chave var, e continua com as seguintes sintaxes:

<lista-de-variáveis> : <tipo-de-dado>

Page 19: INTRODUÇÃO A PROGRAMAÇÃO

Elementos básicos para construção de um Algoritmo

Nome da VariávelRegra para criar nomes de variáveis.

– Os nomes das variáveis devem representar o que será

guardado dentro dela.

– O primeiro caractere de um nome deverá ser sempre

Alfabético.

– Não podem ser colocados espaços em branco no nome de variáveis, usar o UNDERSCORE “_”.

– A declaração de uma variável é feita no algoritmo informando o seu nome, seguido por : e terminado com o seu tipo.

Page 20: INTRODUÇÃO A PROGRAMAÇÃO

Elementos básicos para construção de um Algoritmo

Tipo de DadosPalavra-reservada: logico - define variáveis do tipo booleano, ou seja,

com valor VERDADEIRO ou FALSO.

– Palavra-reservada: caractere – define variáveis do tipo string, ou seja, cadeia de caracteres.

– Palavra-reservada: inteiro - define variáveis numéricas do tipo inteiro, ou seja, sem casas decimais.

– Palavra-reservada: real - define variáveis numéricas do tipo real, ou seja, com casas decimais.

Page 21: INTRODUÇÃO A PROGRAMAÇÃO

Elementos básicos para construção de um Algoritmo

Constantes e Comando de Atribuição

As cosntantes são valores fixos, tais como números, caractere ou Lógico. Estes valores não podem ser alterados pelas instruções do algoritmo, ou seja, é um espaço de memória cujo valor não deve ser alterado durante a execução do programa.

A atribuição de valores a variáveis é feita com o operador <-. Do seu lado esquerdo fica a variável à qual está sendo atribuído o valor, e à sua direita pode-se colocar qualquer expressão (constantes, variáveis, expressões numéricas), desde que seu resultado tenha tipo igual ao da variável.

Page 22: INTRODUÇÃO A PROGRAMAÇÃO

Elementos básicos para construção de um Algoritmo

Palavras-reservadas

São identificadores predefinidos que possuem significados especiais para o interpretador do algoritmo.

Page 23: INTRODUÇÃO A PROGRAMAÇÃO

Elementos básicos para construção de um Algoritmo

Operadores Aritméticos

Page 24: INTRODUÇÃO A PROGRAMAÇÃO

Elementos básicos para construção de um Algoritmo

Operadores Relacional e Lógico

Page 25: INTRODUÇÃO A PROGRAMAÇÃO

Exemplos

Page 26: INTRODUÇÃO A PROGRAMAÇÃO

Exercícios1. Escreva um algoritmo para calcular o valor de y como

função de x, segundo a função y(x) = 3x + 2, num domínio real.

2. Escreva um algoritmo para calcular o consumo médio de um automóvel (medido em Km/l), dado que são conhecidos a distância total percorrida e o volume de combustível consumido para percorrê-la (medido em litros).

3. Para as instruções propostas a seguir, expresse um algoritmo que pode ser usado em sua solução na forma de um fluxograma e pseudocódigo. Ao final da execução do trecho abaixo, quais os valores de A, B e C?

A <-1; B<-2; C<-1;

A <-B+1;

B<-B-1;

C<-A+3;

C<-B-3;

A <-C+1;

A=_______ B=________ C=_________

4. O que será mostrado no vídeo durante a execução deste trecho de programa?

x<-1;

z<-2;

a<-x + z;

b<-x - z;

escreva(“Valor de A: %R”, a);

escreva(“Valor de A-1: %R”, a-1);

5. Escreva um programa que recebe tres inteiros e escreva na tela a media, a soma, o produto, usando uma linha para cada resultado.

6.Faça um algoritmo (Descrição Narrativa, Fluxograma e Pseudocódigo) para calcular o novo salário de um funcionário com um aumento de 20%.

Page 27: INTRODUÇÃO A PROGRAMAÇÃO

Elementos básicos para construção de um Algoritmo

Estruturas de Controle de FluxoOs algoritmos desenvolvidos até o momento constituem uma

seqüência de ações que sempre são executadas em sua totalidade indiferente de qual(is) seja(m) o(s) valor(es) da(s) entrada(s).

Contudo para a resolução de determinados problemas ou para a execução de determinadas tarefas é necessária a realização de um conjunto distinto de ações e este conjunto é definido com base em uma análise da(s) entrada(s).

Um exemplo cotidiano de uma destas situações é um algoritmo capaz de efetuar o cálculo do imposto de renda devido por um determinado contribuinte. Neste caso dependendo da quantidade de dependentes, do valor de sua renda e outras fatores o cálculo será feito de formas distintas.

Page 28: INTRODUÇÃO A PROGRAMAÇÃO

Elementos básicos para construção de um Algoritmo

Estruturas de Controle de FluxoEm função do que foi mencionado foram criadas as estruturas

de controle de fluxo, as quais são fundamentais para a construção de algoritmos complexos. Estas permitem que o programador especifique a seqüência de instruções que será executada.

1. Instrução condicional simples

Sintaxe: …

Page 29: INTRODUÇÃO A PROGRAMAÇÃO

Elementos básicos para construção de um Algoritmo

Estruturas de Controle de FluxoExemplo: Construa o pseudocódigo de um algoritmo para obter

o resultado da divisão de dois números inteiros quaisquer.algoritmo “exercício”

var n1, n2: inteiro

res: real

inicio

escreva (“Digite o dividendo inteiro: ”)

leia (n1)

escreva (“Digite o divisor inteiro: ”)

leia (n2)

se (n2<>0) entao

res <- n1 / n2

escreva (“Resultado da divisão: ”, res)

fimse

fimalgoritmo

Page 30: INTRODUÇÃO A PROGRAMAÇÃO

Elementos básicos para construção de um Algoritmo

Estruturas de Controle de Fluxo

Instrução condicional composta

Page 31: INTRODUÇÃO A PROGRAMAÇÃO

ExemploExercício – Construa o pseudocódigo de um algoritmo para obter o resultado

da divisão de dois números inteiros quaisquer.

algoritmo “execício”

var n1, n2: inteiro

res: real

inicio

escreva (“Digite o dividendo inteiro: ”)

leia (n1)

escreva (“Digite o divisor inteiro: ”)

leia (n2)

se (n2=0) entao

escreva (“Impossível dividir!”)

senao

res <- n1 / n2

escreva (“Resultado da divisão: ”, res)

fimse

fimalgoritmo

Page 32: INTRODUÇÃO A PROGRAMAÇÃO

Exercícios1) Elabore um algoritmo que informe se um número inserido pelo usuário é par ou ímpar.

2) Elabore um algoritmo que ordene por ordem crescente dois números inseridos pelo usuário (diferentes).

3) Elabore um algoritmo que ordene por ordem decrescente três números inseridos pelo usuário (diferentes).

4) Elabore um algoritmo que peça ao usuário para fornecer dois números inteiros, obtenha-os do usuário e imprima o maior deles seguido das palavras "é maior". Se os números forem iguais, imprima a mensagem "Estes números ao iguais".

5) Elabore um algoritmo que receba três números inteiros diferentes digitados no teclado e imprima a soma, a média, o produto, o menor e o maior desses números.

6) Escreva um algoritmo que leia cinco números inteiros e então determine e imprima o maior e o menor inteiro do grupo.

7) Escreva um algoritmo para determinar se um número é maior, menor ou igual a 0 (zero) utilizando a estrutura de seleção SE.Faça um algoritmo que leia o nome do aluno e três notas. A partir das informações lidas:- calcule e mostre a média do aluno;- verifique qual será o conceito atribuído ao aluno:- se a média for menor que 5: E- se a média for maior ou igual que 5 e menor que 6: D- se a média for maior ou igual que 6 e menor que 7: C- se a média for maior ou igual que 7 e menor que 9: B- se a média for maior ou igual que 9 e menor ou igual a 10: AFaça um algoritmo usando a estrutura Escolha e outro usando SE.

Page 33: INTRODUÇÃO A PROGRAMAÇÃO

Exercícios8) Faça um algoritmo para gerar os 10 primeiros termos da seqüência de Fibonacci:

Obs. A partir do 3o termo soma-se os dois anteriores. 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

9) Escreva um algoritmo para calcular o reajuste salarial de uma empresa que possui 100 funcionários, de acordo com os seguintes critérios:- os funcionários com salário inferior a 10.000,00 devem ter um reajuste de 55%;- os funcionários com salário entre 10.000,00 (inclusive) e 25.000,00 (exclusive) devem ter um reajuste de 30%; - os funcionários com salário superior a 25.000,00 devem ter um reajuste de 20%

10) Uma empresa com 30 funcionários decide presentear seus funcionários com um bônus de Natal, cujo valor é definido do seguinte modo:- os funcionários do sexo masculino com tempo de casa superior a 15 anos terão direito a um bônus de 20% de seu salário;- as funcionárias com tempo de casa superior a 10 anos terão direito a um bônus de 25% de seu salário; e- os demais funcionários terão direito a um bônus de 5.000,00.Elabore um algoritmo para calcular o valor do bônus concedido a cada funcionário e o impacto de tal atitude no orçamento da empresa (ou seja, o montante total dos bônus concedidos).

11) Faça um programa que leia 10 números e obtenha:a soma dos números; a média dos números; o maior número; e o menor número.

12) Fazer um algoritmo onde Dada a idade, dizer se é adulto, jovem ou velho.