Baixe o app para aproveitar ainda mais
Prévia do material em texto
Fundamentos de Programação I Luiz Arthur1 Universidade Tecnológica Federal do Paraná – UTFPR Campus: Campo Mourão Professor: Luiz Arthur Feitosa dos Santos E-mail: luiz_arthur@fornet.com.br Sumário: ● Revisão; ● Algoritmos; Fundamentos de Programação I Luiz Arthur2 Conceitos básicos de programação Desde o início a sociedade procurou criar máquinas que auxiliassem em seus trabalhos, diminuindo esforço e economizando tempo. O computador vem se mostrando uma das máquinas mais versáteis para automatização dos trabalhos (como um todo) executando tarefas de forma rápida e segura. Tendo o computador como finalidade receber, manipular e armazenar dados. O computador só consegue armazenar dados em disco, imprimir relatórios, gerar gráficos, realizar cálculos, entre outras funções, por meio de programas. Quando queremos criar ou desenvolver um software para realizar determinado tipo de processamento de dados, devemos escrever um programa. No entanto, para que o computador compreenda e execute esse programa, devemos escrevê-lo usando uma linguagem que tanto o computador quanto o criador de software entendam. Essa linguagem é chamada de linguagem de programação. Fundamentos de Programação I Luiz Arthur3 Programas O processamento de dados é feito pela execução de programas. Um programa é uma sequência de instruções codificadas em uma linguagem de programação e para ser executado precisa ser armazenado na memória do computador. As etapas para o desenvolvimento de um programa são: ● Análise – Nesta etapa estuda-se o enunciado do problema para definir os dados de entrada, o processamento e os dados de saída; ● Algoritmo – Ferramenta de tipo descrição narrativa, fluxograma ou português estruturado são utilizadas para descrever o problema com suas soluções; ● Codificação – O algoritmo é transformado em códigos da linguagem de programação escolhida para se implementar; ● Verificação – Tem por finalidade demonstrar que o algoritmo realmente resolve o problema proposto. Portanto, um programa é a codificação de um algoritmo em uma linguagem de programação. Fundamentos de Programação I Luiz Arthur4 Análise do Problema Nesta fase procuramos nos certificar da compreensão correta do problema, eliminando possíveis ambiguidades e assegurando o entendimento completo das especificações de entrada e saída. Escolhemos uma amostra significativa de dados, definindo as especificações de entrada. Determinamos a saída desejada correspondente aos dados de entrada. A escolha da amostra de entrada confirma também a compreensão correta do enunciado do problema. Algoritmos Um algoritmo, intuitivamente, é uma sequência finita de instruções ou operações básicas cuja execução, em tempo finito, resolve um problema computacional, qualquer que seja sua instância. Fundamentos de Programação I Luiz Arthur5 Desenvolvimento de Algoritmos – Top-Down O desenvolvimento pode ser feito por uma técnica chamada de top-down, que consiste em identificar partes ou etapas na estratégia de resolução do problema, elaborando inicialmente um esboço da resolução. Em seguida, detalhamos sucessivamente cada etapa, refinando o processo de resolução, até chegar a uma sequência de operações básicas sobre os tipos de dados considerados. Descrição de um Algoritmo Pode ser feita através de um pseudocódigo (linguagem algorítmica) ou através de fluxogramas. No fluxograma, cada operação básica (instrução) é representada por um desenho. Os fluxogramas são preferíveis em alguns casos por permitir uma visualização global do processo de resolução e de suas partes. Na linguagem algorítmica cada operação básica é escrita em uma linguagem semelhante à linguagem natural, com algumas regras comuns às linguagens de programação. Como vantagem este técnica acaba se tornando mais simples a passagem do algoritmo para a programação. Fundamentos de Programação I Luiz Arthur6 Implementação Na fase de implementação de um algoritmo é feita à sua codificação em uma linguagem de programação. O algoritmo pode ser implementado em qualquer linguagem de programação e essa implementação pode ser trivial, como uma simples transcrição de operações básicas, ou trabalhosa, dependendo principalmente das características da linguagem escolhida e dos tipos de dados nela definidos. Verificação de Programas Verificar se o programa está correto, se cumpre o objetivo identificado na análise. O programa está pronto? (existem programas que é difícil determinar o fim!) Preciso de um editor de Textos! Etapas desenvolvimento Fundamentos de Programação I Luiz Arthur7 Tipos de Algoritmos: Os três tipos mais utilizados de algoritmos são: Descrição Narrativa – Consiste em analisar o enunciado do problema e escrever, utilizando uma linguagem natural (por exemplo, a língua portuguesa), os passos a serem seguidos para sua resolução. Vantagem não é necessário aprender nenhum conceito novo, já a desvantagem é que linguagens naturais dão margem para várias interpretações, o que pode gerar problemas. Fluxograma – O fluxograma consiste em analisar o enunciado do problema e escrever, utilizando símbolos gráficos predefinidos, os passos a serem seguidos para sua resolução. A vantagem é que elementos gráficos são simples de se compreender. A desvantagem é que é necessário aprender a simbologia, e o algoritmo não presenta muito detalhes. Pseudocódigo ou Portugol – Consiste em analisar o enunciado do problema e escrever, por meio de regras predefinidas, os passos a serem seguidos para sua resolução. Como vantagem o resultado é bem próximo da codificação da linguagem de programação. Já a desvantagem é que é necessário aprender as regras do pseudocódigo. Fundamentos de Programação I Luiz Arthur8 Conjunto de símbolos utilizados no fluxograma: Símbolo utilizado para indicar o início e o fim do programa. Indica o sentido do fluxo de dados. Usado para conectar símbolos. Indica cálculos e atribuições de valores. Representa a entrada de dados. Símbolo utilizado para representar a saída de dados. Indica tomada de decisões, apontando a possibilidade de desvios. Fundamentos de Programação I Luiz Arthur9 Algoritmos que soma dois números: 1 – Descrição narrativa 1º Receber os dois números; 2º Somar os dois números; 3º Mostrar o resultado da soma. 2 – Fluxograma 3 – Pseudocódigo: ALGORITMO SOMAR DECLARE RESULTADO, NUM1, NUM2 ESCREVA “Digite dois números” LEIA NUM1, NUM2 RESULTADO NUM1 + NUM2← ESCREVA “O resultado da soma é “, RESULTADO FIM_ALGORITMO SOMAR Início Resultado ← Num1 + Num2 Num1, Num2 Resultado Fim Fundamentos de Programação I Luiz Arthur10 Exercício 1: Faça um algoritmos que multiplique três números. 1 – Descrição narrativa ? 2 – Fluxograma ? 3 – Pseudocódigo: ? Fundamentos de Programação I Luiz Arthur11 Exercício 1: faça um algoritmo que multiplique três números. 1 – Descrição narrativa 1º Receber os três números; 2º Multiplique os três números; 3º Mostrar o resultado da multiplicação. 2 – Fluxograma ? 3 – Pseudocódigo: ? Fundamentos de Programação I Luiz Arthur12 Exercício 1: faça um algoritmo que multiplique três números. 1 – Descrição narrativa 1º Receber os três números; 2º Multiplique os três números; 3º Mostrar o resultado da multiplicação. 2 – Fluxograma 3 – Pseudocódigo: ? Início Resultado ← Num1 * Num2 * Num3 Num1, Num2, Num3 Resultado Fim Fundamentos de Programação I Luiz Arthur13 Exercício 1: faça um algoritmo que multiplique três números. 1 – Descrição narrativa 1º Receber os três números; 2º Multiplique os três números; 3º Mostrar o resultado da multiplicação. 2 – Fluxograma 3 – Pseudocódigo:ALGORITMO MULTIPLICAR DECLARE RESULTADO, NUM1, NUM2, NUM3 ESCREVA “Digite três números” LEIA NUM1, NUM2, NUM3 RESULTADO NUM1 * NUM2 * NUM3← ESCREVA “O resultado da multiplicação é “, RESULTADO FIM_ALGORITMO MULTIPLICAR Início Resultado ← Num1 * Num2 * Num3 Num1, Num2, Num3 Resultado Fim Fundamentos de Programação I Luiz Arthur14 Exercício 2: Faça um algoritmo para mostrar o resultado da divisão de dois números. 1 – Descrição narrativa; ? 2 – Fluxograma; ? 3 – Pseudocódigo. ? Fundamentos de Programação I Luiz Arthur15 Exercício 2: Faça um algoritmo para mostrar o resultado a divisão de dois números. 1 – Descrição narrativa; ? 2 – Fluxograma; ? 3 – Pseudocódigo. ? Atenção para a Análise: Se a análise foi bem feita o desenvolvedor deve saber que existe uma exceção, para se dividir números! NÃO EXISTE DIVISÃO POR ZERO... É claro que você parou pensou e analisou o problema para evitar erros no código e não ter de refazer boa parte do processo de desenvolvimento. Uma boa análise é fundamental para qualquer projeto, mesmo para um programa simples como a divisão de dois números. Lembre-se disso!!! Fundamentos de Programação I Luiz Arthur16 Exemplo de algoritmo para mostrar o resultado da divisão de dois números: 1 – Descrição narrativa: 1º Receber dois números; 2º Se o segundo número foi igual a zero não poderá ser feita a divisão, pois não existe divisão por zero; Caso contrário, dividir os números e mostrar o resultado da divisão. 2 – Fluxograma: ? Fundamentos de Programação I Luiz Arthur17 Exemplo de algoritmo para mostrar o resultado da divisão de dois números: 1 – Descrição narrativa: 1º Receber dois números; 2º Se o segundo número foi igual a zero não poderá ser feita a divisão, pois não existe divisão por zero; Caso contrário, dividir os números e mostrar o resultado da divisão. 2 – Fluxograma: Início Resultado ← Num1/Num2 Num1, Num2 Impossível dividir Por zero Num2 = 0 Fim Resultado Falso Verdadeiro Fundamentos de Programação I Luiz Arthur18 3 – Pseudocódigo ? Fundamentos de Programação I Luiz Arthur19 3 – Pseudocódigo ALGORITMO DIVISÃO DECLARE NUM1, NUM2, RESULTADO NUMÉRICO ESCREVA “Digite dois números” LEIA N1, N2 SE NUM2 = 0 ENTÃO ESCREVA “Impossível dividir por zero” SENÃO INÍCIO RESULTADO NUM1/NUM2← ESCREVA “O resultado da divisão é “, RESULTADO FIM FIM_ALGORITMO DIVISÃO Fundamentos de Programação I Luiz Arthur20 Exercício 3: Dado o pseudocódigo a seguir apresente a descrição narrativa, fluxograma, bem como o que este algoritmo faz. ALGORITMO DECLARE N1, N2, M NÚMERO ESCREVA “Digite dois números “ LEIA N1, N2 M (N1 + N2) / 2← ESCREVA “O resultado é”, M SE M>= 7 ENTÃO ESCREVA “Aprovado” SENÃO “Reprovado” FIM 1 – Descrição narrativa; ? 2 – Fluxograma; ? Fundamentos de Programação I Luiz Arthur21 1 – Descrição narrativa; 1º Receber as duas notas. 2º Calcular média aritmética. 3º Mostrar a média aritmética. 4º Se a média aritmética for maior ou igual a 7, então a situação do aluno é aprovado; caso contrário, a situação é reprovado. 2 – Fluxograma; Início M ← (N1+N2)/2N1, N2 Reprovado M>=7 Fim M Aprovado Sim Não Fundamentos de Programação I Luiz Arthur22 Exercício 4: Dado o Fluxograma a seguir apresente a descrição narrativa e o pseudocódigo. 1 – Fluxograma; Início NOVO_SAL ← SAL_ATUAL * 1,10 SAL_ATUAL NOVO_SAL SAL_ATUAL >= 500 FimNOVO_SAL NOVO_SAL ← SAL_ATUAL * 1,20 NãoSim Fundamentos de Programação I Luiz Arthur23 Exercício 4: Dado o Fluxograma a seguir apresente a descrição narrativa e o pseudocódigo. 2 – Descrição narrativa: ? 3 – Pseudocódigo: ? Fundamentos de Programação I Luiz Arthur24 Exercício 4: Dado o Fluxograma a seguir apresente a descrição narrativa e o pseudocódigo. 2 – Descrição narrativa: 1º Receber salário atual do funcionário; 2º Se o salário atual do funcionário for de até R$500, calcula o novo salário com percentual de aumento de 20%; caso contrário, calcular o novo salário com percentual de aumento de 10%; 3º Mostrar novo salário. 3 – Pseudocódigo: ALGORITMO NOVO_SALARIO DECLARE SAL_ATUAL, NOVO_SAL NUMÉRICO ESCREVA “Digite o salário atual do funcionário” LEIA SAL_ATUAL SE SAL_ATUAL >= 500 ENTÃO NOVO_SAL SAL_ATUAL * 1,20← SENÃO NOVO_SAL SAL_ATUAL * 1,10← ESCREVA “Novo salário = “, NOVO_SAL FIM_ALGORITMO NOVO_SALARIO Fundamentos de Programação I Luiz Arthur25 Atenção! Um grande erro cometido por estudantes de algoritmos e programação é o de tentar decorar soluções (algoritmos) apresentados em sala de aula. Isto é um erro por que apenas alterando o enunciado do problema, de forma mínima, a solução será diferente. Desenvolver algoritmos é uma atividade intelectual de formalizar a resolução de problemas. Segundo o livro Algoritmos e Lógica de Programação: é um erro decorar soluções o que deve ser procurado é o entendimento de como foi obtida uma solução, armazená-la e então utilizar a experiência adaptando-a a outras situações, por analogia, generalização ou especialização. A grande dica é que um problema pode ser diferente de outro, mas consegue-se aproveitar grande parte da experiência obtida em problemas passados para resolver novos desafios. Não existe uma “formula mágica” para resolver problemas, mas vai a seguir um conjunto de dicas: Fundamentos de Programação I Luiz Arthur26 1. Ao se deparar com um problema novo, tente entendê-lo. Para auxiliar, pense no seguinte: ● Qual é o objetivo? O que se deve descobrir ou calcular? ● Quais são os dados disponíveis? São suficientes? ● Quais as condições necessárias e suficientes para resolver o problema? ● Faça um esboço informal de como ligar os dados com as condições. ● Se possível, modele o problema de forma matemática. 2. Crie um plano com a solução: ● Consulte sua memória e verifique se você já resolveu algum problema similar. ● Verifique se é necessário introduzir algum elemento novo no problema, como um problema auxiliar. ● Se o problema foi muito complicado, tente quebrá-lo em partes menores e solucionar essas partes. ● É possível enxergar o problema de outra forma, de modo que seu entendimento se torne mais simples? Fundamentos de Programação I Luiz Arthur27 3. Formalize a solução: ● Crie um algoritmo informal com passos que resolvam o problema. ● Verifique se cada passo desse algoritmo está correto. ● Escreva um algoritmo formalizado por meio de um fluxograma ou outra técnica de representação. 4. Examine os resultados: ● Teste o algoritmo com diversos dados de entrada e verifique os resultados (teste de mesa). ● Se o algoritmo não gerou resultado algum, o problema está na sua sintaxe e nos comandos utilizados. Volte e tente encontrar o erro. ● Se o algoritmo gerou resultados, estes estão corretos? Analise sua consistência. ● Se não estão corretos, alguma condição, operação ou ordem das operações está incorreta. Volte e tente encontrar os erros. Fundamentos de Programação I Luiz Arthur28 5. Otimização da solução: ● É possível melhorar o algoritmo? ● É possível reduzir o número de passos ou dados? ● É possível conseguir uma solução ótima? Mais uma vez, não tem formula mágica para aprender como resolver problemas (algoritmos/programas). Os passos anteriores são apenas dicas para se tornar um bom profissional. A experiência mostra que alunos que tentam decorar soluções normalmente reprovam, então não cometa este erro. Fundamentos de Programação I Luiz Arthur29 Conceito de variável Uma variável representa uma posição de memória, possui um nome para sua representação, que é utilizada para guardar um valor que pode sermodificado pelo programa. O conceito de variável as vezes é difícil de explicar, de tão comum que é em nosso dia a dia (só que nós não nos damos conta!). Exemplo: Duas pessoas estão conversando e precisam realizar uma conta: Gaúcho eu já Marquei 3 gols! Quantos você já Marcou? Gordo eu já marquei 2 gols... Opa, então Estamos ganhando de 5!!! Chocolate... Fundamentos de Programação I Luiz Arthur30 Nesta conversa entre Ronaldo Gaúcho e o Fenômeno: primeiro o Fenômeno diz que marcou três (3) gols, e ambos os jogadores guardam esta informação em suas memórias, quando o Gaúcho diz que marcou dois (2) gols, ambos também armazenam este resultado em suas memórias (sem esquecer o primeiro resultado, ou seja, cada número foi armazenado em posições de diferentes da memória dos jogadores, sem sobreposições). De posse dos dois valores em memória o Gaúcho faz o processamento dos dados somando 3+2 (buscando estes valores de sua memória) e apresenta o resultado que é 5 (3+2=5). Neste cenário os valores 3, 2 e 5 foram armazenados em variáveis na memória de cada jogador. Se algum jogador fizer mais gols este valor vai ser alterado! Usamos variáveis para armazenar dados! As variáveis Podem armazenar várias coisas! Tal como números palavras, etc. Fundamentos de Programação I Luiz Arthur31 Todo computador possui uma tabela de alocação que contém o nome da variável, seu tipo (para saber quantos bytes ocupará) e seu endereço inicial de armazenamento. Quando queremos buscar algum dado na memória, basta sabermos o nome da variável que o computador, por meio da tabela de alocação busca automaticamente seu conteúdo. Tipos de dados Existem vários tipos de dados (os quais podem ser atribuídos à variáveis, por exemplo), os mais comuns são apresentados a seguir. ● Dados numéricos Os dados numéricos dividem-se em dois grupos: inteiros e reais. Os números inteiros podem ser positivos ou negativos e não possuem parte fracionária (números separados por virgula/ponto). Os gols, do exemplo anterior, são exemplos de números inteiros, tal como: 2 3 -1 33 Fundamentos de Programação I Luiz Arthur32 Os números reais podem ser positivos ou negativos e possuem parte fracionária. Tal como: 1,99 1001,1 -11,23 0,0 1,0 0,41 Note que gols feitos pelos jogadores vão ser do tipo numérico inteiros. Um jogador não vai fazer meio gol (0,5). Porém, mantendo a analogia com o futebol, um jogador em um campeonato pode ter uma média de 2,5 gols por partida (15gols/6partidas=2,5gols/partida). Então, dados inteiros podem produzir dados reais. ● Dados Lógicos São também chamados dados booleanos (em homenagem a álgebra de Boole) e podem assumir apenas dois valores verdadeiro ou falso (ou qualquer representação de dois valores, tal como 0 e 1 em binário). Fundamentos de Programação I Luiz Arthur33 ● Dados Literais ou Caracteres Os dados literais ou caracteres são formados por um único caractere ou por uma cadeia de caracteres (também chamado de string). Esses caracteres podem ser as letras maiúsculas, minúsculas, números (não sendo estes utilizados para cálculos) e os caracteres especiais (!,@,#,$,%,^,&,*, etc). Exemplos de dados: 'aula' '123456' 'joao@internet' 'x' '0,5' Identificador Os identificadores são os nomes das variáveis, programas, constantes, rotinas, unidades, etc. De forma geral podemos dizer que um identificador esta associado a uma célula de memória. O termo variável é geralmente sinônimo de identificador, mas o termo identificador abrange mais do que variáveis. Fundamentos de Programação I Luiz Arthur34 As regras básicas para a formação dos identificadores são: ● Um identificador pode ser: ● Caracteres: ● Números; ● Letras maiúsculas; ● Letras minúsculas; ● Caractere sublinhado; ● O primeiro caractere deve ser sempre uma letra ou o caractere sublinhado; ● Não são permitidos espaços em branco e caracteres especiais; ● Não pode-se utilizar palavras reservadas nos identificadores, ou seja, palavras que pertençam a uma linguagem de programação (exemplo, case, if, do, etc). Estas regras são bem específicas para as linguagens de programação, por isto é sempre bom verificar o manual da linguagem para constatar estas regras de criação de nomes de identificadores. Fundamentos de Programação I Luiz Arthur35 Bons exemplos de identificadores: X x Resultado RESULTADO valorNota _numero Exemplos inválidos de identificadores: 1numero valor Nota tcp/ip z-y numero(2) @email Case Fundamentos de Programação I Luiz Arthur36 Paradigmas de programação Um paradigma de programação está intimamente relacionado à forma de pensar do programador e como ele busca a solução para os problemas. Existem vários paradigmas de programação, mas os principais são: estruturado e orientado a objetos. Paradigmas de programação estruturado Neste paradigma (também conhecido de imperativo), qualquer problema pode ser resolvido utilizando três estruturas: sequencial, condicional, iterativa (repetição). Este paradigma, procura encontrar uma forma de quebrar um problema complexo em pequenas partes mais simples que, trabalhadas conjuntamente, permitem solucioná-lo. A ideia é que, utilizando corretamente tais estruturas, o recurso da modularização e parametrização, seja possível criar programas com menor repetição possível de linhas de comandos. Fundamentos de Programação I Luiz Arthur37 Paradigmas de programação orientado a objetos Compreende o problema como uma alocação de objetos interagindo por meio de troca de mensagens. Os objetos são estruturas de dados contendo lógica. Dessa maneira, um conjunto de objetos com informações comuns e com o mesmo comportamento dá origem a uma classe. Um programador que utilizar o paradigma estruturado analisa o problema tentando relacionar as ações que deverão ser executadas e como poderão ser divididas em módulos. Um programador que utilize o paradigma orientado a objetos analisaria o mesmo problema tentando identificar os objetos que compõem essa realidade e como interagem. O paradigma não está ligado diretamente a linguagem de programação, ou seja, não é por que foi utilizado uma linguagem de programação voltada ao paradigma orientado a objeto que a solução do problema foi implementada desta forma, o mesmo se aplica a linguagens estruturadas (é possível implementar orientação a objetos em linguagens de programação não orientadas a objeto). Fundamentos de Programação I Luiz Arthur38 Diferenças de implementação de um mesmo problema usando paradigmas diferentes: O problema a ser resolvido é: calcular a área e o perímetro de um retângulo. Para isso, deverá existir uma janela (tela na qual existe a entrada e saída de dados), pela qual serão informadas as medidas dos lados do retângulo e poderão ser vistos os cálculos realizados. Descrição narrativa: 1º Obter o valor da altura do retângulo. 2º Obter o valor da largura do retângulo. 3º Calcular a área (altura * largura). 4º Calcular o perímetro ((altura*2)+(largura*2)). 5º Mostrar o cálculo realizado. Fundamentos de Programação I Luiz Arthur39 Segundo o paradigma estruturado a solução via pseudocódigo seria: FUNÇÃO CALCULA_AREA(A, B NÚMERO) CALCULA_AREA A*B← RETORNA CALCULA_AREA FIM FUNÇÃO CALCULA_AREA FUNÇÃO CALCULA_PERIMETRO(X, Y NÚMERO) CALCULA_PERIMETRO 2*X + 2*Y← RETORNA CALCULA_PERIMETRO FIM FUNÇÃO CALCULA_PERIMETRO ALGORITMO RETANGULO DECLARE ALTURA, LARGURA, AREA, PERIMETRO NÚMERICO ESCREVA “Digite o valor da altura do retângulo: ” LEIA ALTURA ESCREVA “Digite o valor da largura do retângulo: “ LEIA LARGURA AREA CALCULA_AREA(ALTURA, LARGURA)← PERIMETRO CALCULA_PERIMETRO(ALTURA, LARGURA)← ESCREVA “O valorda área é “, AREA ESCREVA “O valor do perímetro é ”, PERIMETRO FIM ALGORITMO RETANGULO Fundamentos de Programação I Luiz Arthur40 Segundo o paradigma orientado a objeto a solução seria: CLASSE RETANGULO DECLARE ALTURA, LARGURA NÚMERICO PRIVADO RETANGULO (INICIA VARIÁVEIS) PUBLICO OBTER_ALTURA (RETORNA VARIÁVEL ALTURA) PUBLICO ATRIBUI_ALTURA (FORNECE O VALOR DE ALTURA) PUBLICO OBTER_LARGURA (RETORNA VARIÁVEL LARGURA) PUBLICO ATRIBUI_LARGURA (FORNECE O VALOR DE LARGURA) PUBLICO CALCULA_AREA (ALTURA * LARGURA) PUBLICO CALCULA_PERIMETRO (2*ALTURA + 2*LARGURA) FIM CLASSE RETANGULO CLASSE JANELA DECLARE ALTURA, LARGURA, AREA, PERIMETRO NÚMERICO DECLARE R RETANGULO ESCREVA “Digite o valor da altura do retângulo: “ LEIA ALTURA ESCREVA “Digite o valor da largura do retângulo: “ LEIA LARGURA R = NOVO RETANGULO R.ATRIBUI_ALTURA(ALTURA) R.ATRIBUI_LARGURA(LARGURA) AREA R.CALCULA_AREA();← PERIMETRO R.CALCULA_PERIMETRO();← ESCREVA “O valor da área é “, AREA ESCREVA “O valor do perímetro é ”, PERIMETRO FIM CLASSE JANELA Fundamentos de Programação I Luiz Arthur41 --o algoritmo orientado a objeto, não é a melhor representação, é só para dar uma ideia! No paradigma estruturado cada módulo (funções) poderá receber valores e também devolver um valor a quem solicitou. Neste algoritmo estruturado a solução tem três módulos: ● Um principal pelo qual o algoritmo iniciará; ● A função CALCULA_AREA, responsável por calcular e devolver o valor da área do retângulo; ● A função CALCULA_PERIMETRO, responsável por calcular e devolver o valor do perímetro. No paradigma orientado a objeto a solução do problema é obtida seguindo estas etapas: ● Procurar objetos existentes no problema; ● Determinar as características e responsabilidades de cada objeto; ● Estabelecer como ocorrerá a interação entre os objetos. Então no exemplo orientado a objetos observamos dois objetos: o objeto RETANGULO que tem a obrigação de armazenar e manipular o valor da altura e da largura, além de calcular a área e o perímetro; E o objeto JANELA que tem a obrigação de receber os valores iniciais (altura e largura) e enviá-los para o objeto RETANGULO, depois o objeto JANELA deve solicitar os valores obtidos e mostrá-los. Fundamentos de Programação I Luiz Arthur42 Cada linguagem de programação atende a pelo menos um paradigma. É difícil dizer qual é o melhor (isto pode ser pessoal), mas inicialmente vamos seguir o estruturado. Referência: ASCENCIO, Ana F.G; CAMPOS, Edilene A.V. Fundamentos da programação de computadores – Algoritmos, Pascal, C/C++ e Java. 2ed. Editora Pearson. 2007. MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lógica para desenvolvimento de programação de computadores. 22.ed. São Paulo: Érica, 2009. SALVETTI, Dirceu D; BARBOSA, Lisbete M. Algoritmos. Editora Makron Books. 1998. UTIYAMA, Fabiano. Introdução Algoritmos. UNIPAR. 2010. Fundamentos de Programação I Luiz Arthur43 Fim! Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42 Slide 43
Compartilhar