Diagramas Nassi Schneiderman
Transcrição
Diagramas Nassi Schneiderman
Introdução – uso do computador • O computador, consisti de uma ferramenta muito útil ao interesse humano Lógica de Programação Jeanne Leite ▫ Possui grande capacidade de processamento; ▫ Grande velocidade; • Porém depende do raciocínio humano para a realização de tarefas realmente corretas: ▫ Os computadores não possuem um raciocínio coerente com todas as variáveis existentes e necessárias à resolução de problemas do mundo real. ▫ Exemplo: ▫ Os sentimentos envolvendo a tomada de decisão/ação sobre uma determinada situação real. Introdução – uso computador – vantagens: • O automatismo das tarefas • Porém deve-se fazer um planejamento prévio das operações a serem realizadas automaticamente pelo computador. Introdução – Importância do Planejamento • O computador só conseguirá realizar eficientemente as operações desejadas por seus usuários, se estas operações forem bem planejadas e elaboradas pelos programadores. • Qual a conseqüência de um mau planejamento? • O funcionamento de um computador depende muito do conhecimento, raciocínio lógico e esforço dedicados pelos programadores. Lógica de Programação • A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, ela permite definir a seqüência lógica para o desenvolvimento. • Def: ▫ Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo. Lógica de Programação • As praias ficam na costa do País. • Brasília está no centro do país. • Logo, Brasília não tem praia (uma conclusão lógica) Seqüência Lógica • O encadeamento de pensamentos, podem ser descritos como uma seqüência de instruções, que devem ser seguidas para se cumprir uma determinada tarefa. • Def: ▫ Seqüência Lógica são passos executados até atingir um objetivo ou solução de um problema. Instruções • Instrução é a informação que indica a um computador uma ação elementar a executar. • Ex: ▫ Se quisermos fazer uma omelete de batatas, precisaremos colocar em prática uma série de instruções: descascar as batatas, bater os ovos, fritar as batatas, etc... • As instruções tem que ser executadas em uma ordem adequada, ter seqüência lógica. ▫ não se pode descascar as batatas depois de fritálas. Algoritmos • Um algoritmo é uma seqüência finita de passos que levam a execução de uma tarefa. ▫ Ex: uma receita, um manual, • São uma seqüência de instruções finitas que se seguidas logicamente alcançamos a solução do problema. Algoritmo – Outras Definições • É uma seqüência de ações finitas que descrevem como um problema deve ser resolvido. • É um conjunto de regras formais para a obtenção de um resultado ou da solução de um problema. • Seqüência ordenada de passos a ser seguida para a realização de uma determinada tarefa. • Conjunto de regras e operações bem definidas e ordenadas, destinadas à solução de um problema, ou de uma classe de problemas. Algoritmos - Exemplo • “Chupar uma bala” ▫ ▫ ▫ ▫ 1- Pegar a bala 2- Retirar o papel 3- Chupar a bala 4- Jogar o papel no lixo Algoritmo • Faça um algoritmo para preparar um sanduíche . Algoritmo - Exemplo • • • • • • • • • • 1º - Pegar um pão 2º - Cortar o pão ao meio 3º - Pegar a maionese 4º - Passar maionese no pão 5º - Pegar alface e tomate 6º - Cortar alface e tomate 7º - Colocar alface e tomate no pão 8º - Pegar um hambúrguer 9º - Fritar o hambúrguer 10º - Colocar o hambúrguer no pão Algoritmo • Um problema pode ser resolvido de diversas maneiras, mas deve sempre chegar ao resultado desejado de forma correta. • Podem existir vários algoritmos que solucionem um problema, alguns mais rápidos, outros mais seguros, mas todos conseguem resolver o problema corretamente, apesar das diferenças existentes no percurso de toda a lógica proposta como solução. Elaboração de um programa • Conhecimento do problema • Planejar, raciocinar sobre ele, de forma a encontrar uma solução segura e eficaz para sua solução. • conhecimento de todos os detalhes possíveis que envolverão o computador e o programa que será desenvolvido e disponibilizado • Levantamento de informações • Quanto mais informações do problema a equipe de desenvolvedores tiver menores serão as chances do processamento incorreto, ou mesmo incompleto, realizado pelo programa que será executado pelo computador. Algoritmo • Observe que as instruções, seqüencialmente descritas em passos, realizaram ao seu final (um sanduíche). • Cada um pode fazer o sanduíche de maneira diferente, onde os passos, com outra ordenação, também elaboraram um gostoso sanduíche (atingi o objetivo). Programas • Os programas de computadores são algoritmos escritos numa linguagem de computador (Pascal, C, Cobol, Fortran, Visual Basic entre outras) e que são interpretados e executados por uma máquina, no caso um computador. Elaboração de um programa • O planejamento requer tempo suficiente para o programador pensar nas possibilidades envolvidas e encontrar uma lógica coerente para a solução do problema. Implementação • É a codificação do raciocínio humano a ser realizado pelo computador na busca de uma solução para um problema computacional. • Este raciocínio será descrito em uma linguagem de comunicação com o computador (linguagem de programação), para que ele compreenda as instruções necessárias ao atendimento do objetivo desejado por seu usuário. Implementação • É fundamental a organização clara e simples de todos os raciocínios possíveis a serem elaborados e testados na busca da solução para um problema computacional. • Os algoritmos possibilitam uma representação simples e clara o suficiente para a compreensão da lógica a ser aplicada na solução do problema existente. Algoritmos - Métodos de elaboração • 1º - empenhar grande atenção sobre os dados relacionados ao problema, procurando conhecer e compreender o máximo sobre ele; • 2º -definir os dados que essencialmente deverão ser informados pelo usuário para que o processamento seja realizado com sucesso (dados de entrada); • 3º -descrever detalhadamente o processamento ou a transformação a ser executada sobre os dados de entrada em busca dos resultados desejados (como chegar no objetivo); Implementação • O esforço dedicado a elaboração de um raciocínio lógico coerente com o problema existente, poderá ser realizado por um único indivíduo ou por uma equipe de profissionais que almejam encontrar tal solução lógica a ser implementada em um computador. • É claro que a complexidade do problema também fará diferença considerável neste processo, pois quanto maior for a sua complexidade, maior serão os fatores que interferem em sua solução. Com isso, a lógica racional a ser elaborada também envolverá diversos fatores a serem previsto e analisados por estes profissionais. Algoritmos - Métodos de elaboração • Existem várias as técnicas e métodos para a construção de algoritmos. • Um método para a construção de algoritmos possibilita a implementação dos mesmos, posteriormente, em um computador (desenvolvimento de programas computacionais): Algoritmos - Métodos de elaboração • 4º -definir quais são os dados resultantes do processamento ou transformação (dados de saída); • 5º -construir o algoritmo que represente a solução encontrada com o detalhamento necessário a implementação almejada; • 6º -testar o algoritmo por meio de simulações e efetuar as devidas correções que possam vir a ser necessárias a lógica proposta. Algoritmos - Métodos de elaboração Tradução • Um algoritmo é implementado sobre o computador, por meio da transcrição (tradução) da lógica representada no algoritmo para uma linguagem de programação • A tradução somente efetuará mudança na forma de descrever o raciocínio a ser implementado no computador. LINGUAGEM DE PROGRAMAÇÃO • Devemos traduzir o algoritmo para a linguagem de programação desejada (linguagem entendida pelo computador), respeitando as suas regras de sintaxe e semântica. LINGUAGEM DE ALTO NÍVEL • São linguagens que estão próximas da linguagem humana. Ex: Java, C#, Ruby, Pascal, C, C++, Python, Cobol. • Assembly é uma linguagem de baixo nível. ▫ Assembler é o programa que permite ao programador montar (semelhante a um compilador) o código assembly e compilá-lo. LINGUAGEM DE PROGRAMAÇÃO • Exemplo: • Vamos traduzir a seguinte instrução: • escreva("Informe a sua idade:"); • A instrução escreva corresponde aos comandos especificados respectivamente na linguagens identificadas na relação a seguir: COMANDO LINGUAGEM write Pascal printf C Programação (tradução) • É a codificação de um algoritmo em uma determinada linguagem de programação. • Todo computador para funcionar necessita ser controlado por um programa. ▫ O Sistema Operacional de um computador é o programa responsável por controlar todas as funções a serem desempenhadas em nível operacional. Compilação • Para um programa tornar-se funcional este necessita ser compilado (traduzido para linguagem de máquina). • Um compilador é o tipo de programa que ao compilar um programa fonte (em linguagem de alto nível) o transforma em linguagem de máquina. • Se houver a tentativa de descompilá-lo a fonte obtida estará escrita em código assembly. Estruturas lógicas básicas • Seqüência, decisão e iteração. São as três estruturas lógicas fundamentais no controle do fluxo de dados e instruções. • Também conhecidas como estruturas de controle de dados, pois desempenham o papel de controle sobre a seqüência de ações (ou tarefas) a serem realizadas (ou executadas) no algoritmo. Metodologias de desenvolvimento • Uma linguagem de programação permite ao programador elaborar programas que instruirão o computador nas operações a serem efetuadas. • Métodos sistemático de programação devem ser adotados para o desenvolvimento de programas confiáveis, flexíveis e eficientes. • Uma metodologia de desenvolvimento deve ser adotada com etapas básicas fundamentais ao desenvolvimento de qualquer programa Programação estruturada • É uma forma de programação de computadores que preconiza que todos os programas possíveis podem ser reduzidos a apenas três estruturas: seqüência, decisão e iteração. • A Programação estruturada é modular, orienta os programadores para a criação de estruturas simples em seus programas, usando as subrotinas e as funções (subalgoritmos). • Apesar de ter sido sucedida pela programação orientada a objetos, pode-se dizer que a programação estruturada ainda é marcantemente influente, uma vez que grande parte das pessoas ainda aprendem programação através dela. Estruturas lógicas básicas • Seqüência : as instruções existentes no algoritmo são executadas uma após a outra, respeitando sempre a seqüência linear de cima para baixo. • Decisão : ou seleção, exerce o controle sobre a seqüência de instruções a serem executadas, por meio do resultado de um teste ou verificação lógica, sendo também conhecida como lógica condicional. • Iteração : ou repetição, por meio de um teste ou verificação lógica uma instrução, ou um conjunto de instruções, é executado repetidamente (mais que uma vez). Essa lógica de execução também é conhecida como lógica de laço ou looping. Metodologias de desenvolvimento • ANÁLISE: nessa etapa estuda-se o problema, buscando a sua completa compreensão, onde os dados de entrada, o processamento e os dados de saídas possam ser identificados corretamente; essa etapa aplica métodos e técnicas • PROJETO: que possibilitem a descrição necessária do problema com suas possíveis soluções. Ela consiste no projeto do programa, sendo elaborada por meio da construção do algoritmo e da definição correta das estruturas de dados necessárias a tal solução; Metodologias de desenvolvimento • CODIFICAÇÃO: essa etapa consiste na implementação do projeto do programa, ou seja, na tradução do raciocínio, representado no algoritmo, para um programa computacional, escrito na linguagem de programação desejada; nessa etapa é finalizado o processo de • VERIFICAÇÃO: desenvolvimento do programa, que é classificado como software, sendo também chamado de aplicação. Simulações, testes e verificações dos resultados alcançados pelo programa são analisados, podendo resultar em alterações no código elaborado. Essas alterações procurarão o atendimento eficaz do objetivo desejado pelo programa., que é finalmente liberado aos usuários finais. REPRESENTAÇÃO DO ALGORITMO • Existem várias técnicas que representarão a seqüência dos passos (ou etapas) a serem realizados pela execução do algoritmo. Metodologias de desenvolvimento • As metodologias possibilitam o desenvolvimento organizado e eficiente do programa desejado. • Devemos ainda realizar a documentação coerente em cada uma delas para a construção de uma lógica clara e detalhada o suficiente para a compreensão de qualquer outro profissional da área, promovendo alta qualidade nesse desenvolvimento. Técnicas de Representação de Algoritmos • Dentre as formas de representação de algoritmos mais conhecidas, sobressaltam: ▫ Descricao Narrativa ▫ Fluxograma Convencional ▫ Diagrama de Chapin ▫ Pseudocódigo, também conhecido como Linguagem Estruturada ou Portugol. Descrição Narrativa • Nesta forma de representação os algoritmos são expressos diretamente em linguagem natural • Exemplo: Troca de um pneu furado x x x x x x x Afrouxar ligeiramente as porcas Suspender o carro Retirar as porcas e o pneu Colocar o pneu reserva Apertar as porcas Abaixar o carro Dar o aperto final nas porcas Descrição Narrativa • Esta representação é pouco usada na prática porque o uso de linguagem natural muitas vezes dá oportunidade a más interpretações, ambigüidades e imprecisões. • Por exemplo, a instrução “afrouxar ligeiramente as porcas” no algoritmo da troca de pneus está sujeita a interpretações diferentes por pessoas distintas. • Uma instrução mais precisa seria: “afrouxar a porca, girando-a de 30º no sentido anti-horário”. FLUXOGRAMA • É uma representação gráfica de algoritmos onde formas geométricas diferentes implicam ações distintas. • Objetivo: Facilitar o entendimento das idéias contidas nos algoritmos. • Ele é elaborado após a fase de análise do problema. Fluxograma - Exemplo • Imagine uma situação onde a idade de uma pessoa deva ser analisada para a classificação dela ainda ser jovem ou velha. Fluxograma – Vantagens x Desvantagens DIAGRAMA DE CHAPIN • Foi elaborado por Nassi e Shneiderman e ampliada por Ned Chapin. • Almejada a substituição da representação tradicional (diagrama de blocos) por uma diagramação com quadros que oferecem a visão hierárquica e estruturada da lógica proposta para um programa. DIAGRAMA DE CHAPIN DIAGRAMA DE CHAPIN • Vantagens x Desvantagens PORTUGUÊS ESTRUTURADO • Também chamada de portugol ou pseudocódigo • Bastante rico em detalhes e, por assemelhar-se bastante à forma em que os programas são escritos, encontra muita aceitação. • Consiste na descrição estruturada, por meio de regras predefinidas, de passos (ou instruções) a serem realizados para a resolução do problema. • • • • • • • • • • • • • • • • • algoritmo "avaliação médica" // Síntese // Objetivo: analisar a idade de uma pessoa //Entrada: uma idade //Saída: mensagem de velho ou jovem // Declarações var idade:inteiro inicio escreva (“Informe sua idade: “) leia (IDADE) se (IDADE < 25) então escreva (“você é jovem”) senão escreva (“você é velho”) fimse fimalgoritmo PORTUGUÊS ESTRUTURADO Algoritmo <nome_do_algoritmo> <declaração_de_variáveis> <subalgoritmos> Início <corpo_do_algoritmo> Fim. PORTUGUÊS ESTRUTURADO • Vantagens x Desvantagens PORTUGUÊS ESTRUTURADO • Entre essas três formas de representação (fluxograma, Chapin e português estruturado), o português estruturado é o mais relevante no desenvolvimento pelos seguintes fatores: PORTUGUÊS ESTRUTURADO • facilitar o desenvolvimento dos algoritmos; • facilitar o seu entendimento pelo ser humano; • antecipar à depuração (localização de erros) em sua lógica; • facilitar a sua manutenção e modificação; • facilitar e agilizar a sua codificação (escrita do programa); • permitir o desenvolvimento simultâneo de vários profissionais (trabalho em equipe).
Documentos relacionados
Conceitos Iniciais sobre Algoritmos e
“Programar é uma arte. Resume-se a ensinar um computador a fazer o que tem de ser feito. Não basta apenas sentar em uma cadeira e começar a escrever código, você não é apenas um mero codificador. E...
Leia maisProgramação - Software Livre Brasil
Cada uma dessas formas de representar um algoritmo, tem suas vantagens e desvantagens, cabe a pessoa escolher a forma que melhor lhe convir. As principais formas de representação de algoritmos são:...
Leia mais