Anda di halaman 1dari 21

SSC0101 - ICC1 Terica Introduo Cincia da Computao I

Resoluo de problemas e desenvolvimento de algoritmos


Prof. Vanderlei Bonato Prof. Cludio Fabiano Motta Toledo

Sumrio
Anlise e soluo de problemas Representao Documentao

Anlise e soluo de problemas


Um algoritmo um conjunto ordenado de passos executveis no ambguos, definindo um processo que tem trmino. O algoritmo abstrato e distinto de suas representaes. Um nico algoritmo pode ser representado de diversas formas. Por exemplo:
F = (9/5)C + 32. Multiplicar a temperatura, lida em graus Celsius, por 9/5, e ento somar 32 ao produto assim obtido.

Algoritmo x Programa x Processo.


Um programa uma das possveis representaes de um algoritmo. Processo a atividade de executar um programa e, conseqentemente, tambm a atividade de executar um algoritmo.

Anlise e soluo de problemas


Um algoritmo um conjunto ordenado de passos.

Um algoritmo deve ter uma estrutura bem estabelecida, quanto ordem em que seus passos so executados. No significa necessariamente execuo em uma seqncia preestabelecida, onde o primeiro passo seguido por um segundo, e assim por diante.
Os passos de um algoritmo no podem ser ambguos. As instrues devem ser claras o bastante para determinar de forma nica e completa as aes necessria em cada passo do algoritmo. Passo1: Converta a leitura da temperatura de graus Celsius para Fahrenheit. A instruo pode ser clara para um especialista, mas ambgua para um leigo. O problema reside na representao, mas no no algoritmo. Algoritmos devem sempre levar o processamento a um estado de trmino.

Anlise e soluo de problemas


Delineamento de algoritmos Descobrir um mtodo para solucionar um problema. o passo que mais desafios apresenta no processo de desenvolvimento de softwares. O matemtico G. Polya apresenta fases para o processo de resoluo de problemas. Fase 1. Entender o problema Fase 2. Construir um plano para solucionar o problema. Fase 3. Colocar o plano em funcionamento. Fase 4. Avaliar a soluo quanto preciso e quanto ao seu potencial como ferramenta para solucionar outros problemas.

Anlise e soluo de problemas


Traduzindo para o contexto do desenvolvimento de programas: Fase 1. Compreender o problema. Fase 2. Adquirir uma idia da forma como um procedimento algortmico poderia resolver o problema. Fase 3. Formular o algoritmo e represent-lo na forma de um programa. Fase 4. Avaliar o programa quanto preciso e quanto ao seu potencial como ferramenta para resolver outros problemas.

Representao e documentao
Descrio narrativa: consiste em analisar o enunciado do problema e escrever, utilizando linguagem natural, os passos a serem seguidos para sua resoluo. No necessrio aprender novos conceitos, pois a lngua natural j bem conhecida. A lngua natural abre espao para vrias interpretaes, dificultando a transcrio desse algoritmo para programa. Fluxograma: consiste em analisar o enunciado do problema e escrever, utilizando smbolos grficos, os passos a serem seguidos para sua resoluo. O entendimento de elementos grficos mais simples que o entendimento de textos. Os fluxogramas devem ser entendidos e o algoritmo resultante no detalhado. Isso dificulta sua transcrio para um programa

Representao e documentao
Pseudocdigo: consiste em analisar o enunciado do problema e escrever, por meio de regras predefinidas, os passos a serem seguidos para sua resoluo. A passagem do algoritmo para qualquer linguagem de programao quase imediata. As regras do pseudocdigo devem ser aprendidas.

Representao e documentao
EXEMPLO: Algoritmo para exibir o resultado da multiplicao de dois nmeros. Algoritmo em descrio narrativa PASSO 1 Receber os dois nmeros que sero multiplicados. PASSO 2 Multiplicar os nmeros. PASSO 3 Mostrar o resultado obtido da multiplicao. Algoritmo em fluxograma
Incio N1, N2

M = N1*N2

FIM

Representao e documentao
Algoritmo em pseudocdigo ALGORITMO DECLARE N1, N2, M NUMRICO ESCREVA Digite dois nmeros LEIA N1, N2 M N1*N2 ESCREVA Multiplicao = , M FIM_ALGORITMO

Representao e documentao
Os comandos nas linguagens de programao pertencem a trs categorias. Comandos declarativos: definem uma terminologia personalizada a ser utilizada no programa. Por exemplo, nomes associados aos dados. Comandos imperativos: descrevem os passos dos algoritmos subjacentes. Comentrios: facilitam a leitura de um programa.

Representao e documentao
Parte declarativa de um programa: so usados comandos declarativos para descrever a terminologia. Parte processual (procedimental): so utilizados comandos imperativos para descrever aes a serem executadas.
Parte declarativa

Mdulo de programa Parte procedimental

Representao e documentao
Variveis So identificadores de posies de memria cujo valor armazenado est sujeito a alteraes. Possui nome (ou identificador) e tipo (numricos, lgicos, literais ou caracteres). Identificadores Nomes das variveis, constantes, rotinas, programas, etc. Podem ser formados utilizando caractere sublinhado, nmeros e letras (maisculas ou minsculas). Uma letra ou o caractere sublinhado podem ser o primeiro caractere em um identificado. Espaos em branco e caracteres especiais (@,$,+, -, %, !) no podem ser utilizados em um identificador. Tambm no podem ser utilizadas palavras reservadas.

14

Representao e documentao
Tipo de dados Podem ser numricos, literal ou lgico. Um tipo define determinado dado, permitindo saber quais operaes podem ser executadas sobre determinado tipo de dado. Por exemplo, possvel somar dois valores numricos, mas no possvel somar um nmero e uma frase (cadeia de caracteres). O tipo de dado adequado deve ser manipulado pelo algoritmo. Por exemplo, no podemos utilizar um tipo inteiro para tratar valores reais.

Representao e documentao
Tipos de Dados Numricos Podem ser inteiros ou reais. Exemplo:
Inteiros -23 98 0 237 -2 Reais 23.45 346.89 0.0 -34.88 -247.0

16

Representao e documentao
Tipos de Dados Lgicos Tambm chamados booleanos. Assumem valores verdadeiro ou falso. Tipos de Dados Literais ou Caracteres Formados por um nico caractere ou por uma cadeia de caracteres. Os caracteres podem ser letras maisculas, minsculas, nmeros e caracteres especiais (&, #, @, ?, +). Os nmeros, enquanto caracteres, no podem ser usados para clculos. Exemplo: aluno, 123, @ internet, 0.34, 1+2.

17

Representao e documentao
Comentrios Formas sintticas que permitem a insero de textos explicativos no programa. A documentao resultante chamada documentao interna que ignorada pelo tradutor, ou seja, no afeta o programa do ponto de vista da mquina. Sem essa documentao, programas grandes e complexos podem facilmente ultrapassar os limites da capacidade humana de compreenso. So utilizados para descrever um algoritmo ou parte dele. So importantes para aumentar a legibilidade ou entendimento da soluo expressa por um algoritmo. Podem ser usados para indicar o significado das variveis e constantes utilizadas.

18

Representao e documentao
Estrutura Condicional Simples
Algoritmo em pseudocdigo Falso SE <Deciso> ENTO Instruo 1 Instruo2 Instruo 1 Deciso Algoritmo em fluxograma Verdadeiro

Instruo 2

19

Representao e documentao
Estrutura Condicional Composta
Algoritmo em pseudocdigo Falso SE <Deciso> ENTO Instruo 1 SENO Instruo2 Instruo 3 Instruo 3 Instruo 2 Instruo 1 Deciso Algoritmo em fluxograma Verdadeiro

20

Exerccio
Resolva os seguintes exerccios utilizando a representao narrativa, fluxograma e pseudocdigo:
Faa um algoritmo que exiba o resultado da diviso de dois nmeros. Faa um algoritmo para calcular a mdia aritmtica entre duas notas de um aluno e mostrar sua situao, que pode ser aprovado ou reprovado. Faa um algoritmo para calcular o novo salrio de um funcionrio. Sabe-se que os funcionrios que recebem atualmente salrio de at R$500 tero aumento de 20%; os demais tero aumento de 10%.

Anda mungkin juga menyukai