aedi01 conceitos basicos

8
 Página 1 de 7 E-mail professor: [email protected]Arquivo: AEDI01 Conceitos basicos.doc Conceitos Básicos Introdução Um computador possui duas partes diferentes que trabalham juntas: o hardware, composto pelas partes físicas (hard = parte palpável; soft = parte abstrata; ware = do gênero), e o software, composto pelos programas. Quando queremos criar ou desenvolver um software para realizar determinado tipo de processamento de dados, devemos escrever um programa ou vários programas interligados. 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. 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 (informação).  Algoritmo – ferramentas do 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 que o programa seja executado por um computador. Assim, concluímos que um programa é a codificação de um algoritmo em uma linguagem de programação. Conceito de Algoritmo A seguir, alguns conceitos de algoritmos, de acordo com várias bibliografias conhecidas. “Algoritmo é uma seqüência de passos que visa atingir um objetivo bem definido.” (FORBELLONE, 1999) “Algoritmo é a descrição de uma seqüência de passos que deve ser seguida para a realização de uma tarefa.” (ASCENCIO, 1999) “Algoritmo é uma seqüência finita de instruções ou operações cuja execução, em tempo finito, resolve um problema computacional, qualquer que seja sua instância.” (SALVETTI, 1999) “Algoritmo são regras formais para a obtenção de um resultado ou da solução de um problema, englobando fórmulas de expressões aritméticas.” (MANZANO, 1997) “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. Portanto, um algoritmo é a descrição de um conjunto de comandos que, obedecidos, resultam numa sucessão finita de ações.” (FARRER, 1999) Analisando essas definições de algoritmo, podemos concluir que diariamente executamos uma série de algoritmos, como por exemplo, somar números, ir para a Uni-Anhangüera, trocar uma lâmpada, sacar dinheiro em um caixa 24 horas, etc. Veja um algoritmo exemplo: Algoritmo – Trocar uma lâmpada Pegar uma lâmpada nova Pegar uma escada Posicionar a escada embaixo da lâmpada queimada Subir na escada com a lâmpada nova na mão Retirar a lâmpada queimada Colocar a lâmpada nova Descer da escada Testar o interruptor Guardar a escada Jogar a lâmpada queimada no lixo. Notoriamente, você poderia executar as ações do algoritmo acima de uma maneira diferente. Esse pensamento está correto, pois às vezes um problema pode ser resolvido de diversas maneiras, porém, todos produzindo uma mesma resposta, ou seja, podem existir vários algoritmos diferentes para a solução de um problema, desde que todos atinjam o mesmo objetivo.  Método para a Construção de Algoritm os

Upload: cris-cris

Post on 05-Jul-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

8/15/2019 AEDI01 Conceitos basicos

http://slidepdf.com/reader/full/aedi01-conceitos-basicos 1/7

 

Página 1 de 7E-mail professor: [email protected] –Arquivo: AEDI01 Conceitos basicos.doc

Conceitos Básicos

Introdução

Um computador possui duas partes diferentes que trabalham juntas: o hardware, composto pelas partes

físicas (hard = parte palpável; soft = parte abstrata; ware = do gênero), e o software, composto pelos programas.Quando queremos criar ou desenvolver um software para realizar determinado tipo de processamento de dados,devemos escrever um programa ou vários programas interligados. No entanto, para que o computador compreenda eexecute esse programa, devemos escrevê-lo usando uma linguagem que tanto o computador quanto o criador desoftware entendam. Essa linguagem é chamada de linguagem de programação.

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, oprocessamento e os dados de saída (informação).

•  Algoritmo – ferramentas do tipo descrição narrativa, fluxograma ou português estruturado sãoutilizadas para descrever o problema com suas soluções.

•  Codificação – o algoritmo é transformado em códigos da linguagem de programação escolhida para

que o programa seja executado por um computador. Assim, concluímos que um programa é acodificação de um algoritmo em uma linguagem de programação.

Conceito de Algoritmo

A seguir, alguns conceitos de algoritmos, de acordo com várias bibliografias conhecidas.

“Algoritmo é uma seqüência de passos que visa atingir um objetivo bem definido.” (FORBELLONE, 1999)“Algoritmo é a descrição de uma seqüência de passos que deve ser seguida para a realização de uma

tarefa.” (ASCENCIO, 1999)“Algoritmo é uma seqüência finita de instruções ou operações cuja execução, em tempo finito, resolve um

problema computacional, qualquer que seja sua instância.” (SALVETTI, 1999)

“Algoritmo são regras formais para a obtenção de um resultado ou da solução de um problema, englobandofórmulas de expressões aritméticas.” (MANZANO, 1997)“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. Portanto, um algoritmo é a descrição de um conjunto de comandos que,obedecidos, resultam numa sucessão finita de ações.” (FARRER, 1999)

Analisando essas definições de algoritmo, podemos concluir que diariamente executamos uma série dealgoritmos, como por exemplo, somar números, ir para a Uni-Anhangüera, trocar uma lâmpada, sacar dinheiro emum caixa 24 horas, etc. Veja um algoritmo exemplo:

Algoritmo – Trocar uma lâmpada

Pegar uma lâmpada nova

Pegar uma escada

Posicionar a escada embaixo da lâmpada queimada

Subir na escada com a lâmpada nova na mão

Retirar a lâmpada queimada

Colocar a lâmpada nova

Descer da escada

Testar o interruptor

Guardar a escada

Jogar a lâmpada queimada no lixo.

Notoriamente, você poderia executar as ações do algoritmo acima de uma maneira diferente. Essepensamento está correto, pois às vezes um problema pode ser resolvido de diversas maneiras, porém, todosproduzindo uma mesma resposta, ou seja, podem existir vários algoritmos diferentes para a solução de um

problema, desde que todos atinjam o mesmo objetivo. Método para a Construção de Algoritmos

8/15/2019 AEDI01 Conceitos basicos

http://slidepdf.com/reader/full/aedi01-conceitos-basicos 2/7

 

Página 2 de 7E-mail professor: [email protected] –Arquivo: AEDI01 Conceitos basicos.doc

Sempre que você tiver que elaborar um algoritmo, procure seguir os seguintes passos:

•  Identifique o problema a ser resolvido, destacando os principais pontos e os objetos que o compõem.•  Defina os dados de entrada, ou seja, quais dados serão fornecidos ao algoritmo e quais objetos fazem

parte desse problema.•  Defina o processamento, ou seja, quais cálculos serão realizados e quais as restrições para esses

cálculos.•  Defina os dados de saída, ou seja, quais informações serão geradas pelo processamento.•  Elabore o algoritmo usando um dos tipos descritos no próximo tópico (Tipos de Algoritmos).•  Teste o algoritmo através de simulações (teste-de-mesa = trace).

Tipos de Algoritmos

Os três tipos mais usados são:

Descrição Narrativa – consiste em analisar o enunciado do problema e escrever, usando uma linguagemnatural (a língua portuguesa), os passos a serem seguidos para a sua solução. Uma vantagem deste tipo de algoritmo

é que não exige o aprendizado de nenhuma regra ou conceito, já que a língua utilizada é natural, onde você descreveos passos de forma natural, sem regras. Porém, este tipo de algoritmo abre margem para várias interpretações,dificultando a conversão do algoritmo para um programa em uma linguagem de programação.

Fluxograma – consiste em analisar o problema e escrever, usando símbolos gráficos específicos, os passosa serem seguidos para a solução do problema. Possui como vantagem a facilidade natural das pessoas emcompreenderem elementos gráficos. Porém, exige estudo da simbologia dos fluxogramas, que apesar de não sermuito difícil, pode apresentar muitos detalhes e algumas regras, o que também pode dificultar a conversão para umprograma.

Portugol – consiste em analisar o problema e escrever, por meio de muitas regras predefinidas, os passos aserem seguidos para sua solução. Oferece a grande vantagem de estar muito mais próxima de qualquer linguagem deprogramação, fazendo com que a conversão seja quase que imediata. Porém, exige estudo detalhado e demorado das

várias regras de pseudo-código, que serão estudadas neste semestre letivo.

Este documento objetiva apresentar os principais conceitos sobre a elaboração de algoritmos usando oPortugol. Portanto, para você compreender melhor cada um dos três tipos de algoritmos acima descritos, vamos aum exemplo que ilustre todos os três, para um mesmo algoritmo.

Exercício resolvido:

Faça um algoritmo que calcule e mostre o resultado da divisão entre dois números.

1ª solução: usando descrição narrativa

Passo 1 – Obter os dois números que serão divididos.Passo 2 – Se o segundo número for igual a zero, não fazer a divisão, pois não

existe divisão por zero. Caso contrário, dividir os números.Passo 3 – Mostrar o resultado.

2ª solução: usando fluxograma

8/15/2019 AEDI01 Conceitos basicos

http://slidepdf.com/reader/full/aedi01-conceitos-basicos 3/7

 

Página 3 de 7E-mail professor: [email protected] –Arquivo: AEDI01 Conceitos basicos.doc

3ª solução: usando portugol (pseudo-código)

Algoritmo

declare N1, N2, R numérico

escreva "Digite um número"

leia N1

escreva "Digite outro número"

leia N2

se N2 = 0

então

escreva "Impossível dividir"

senão

R  N1 / N2

escreva "Divisão = ", R

fim-se

fim-algoritmo

Como você pode notar, a primeira solução (descrição narrativa) é formada por passos descritos livremente,utilizando a língua portuguesa sem quaisquer regras. No fluxograma, temos algumas regras e na terceira solução(Portugol) muito mais regras, algumas bem mais complexas e que exigem maior estudo. À medida em que vamosavançando em nossos estudos, aprenderemos todas as regras da criação de algoritmos usando o Portugol.

Conceito de Variável

Uma variável representa uma posição de memória em que podemos guardar um valor de um determinadotipo. Toda variável de memória possui um nome e um tipo. O valor de uma variável pode variar ao longo do tempo,durante a execução de um programa. Embora uma variável possa assumir diferentes valores, ela só pode armazenarum valor a cada instante.

Fazendo uma comparação com o mundo real, imagine que a sua sala de aula seja toda a memória principaldo computador (memória RAM) e que cada cadeira (carteira) seja uma posição dessa memória. Cada cadeira seriauma variável. Deste modo, cada cadeira teria um nome e nela poderíamos guardar um valor, por exemplo, umnúmero, uma letra ou uma palavra ou frase. Portanto, o valor armazenado na cadeira deve possuir um tipo de dado,ou seja, se é numérico ou caractere, por exemplo. Como mencionado no final do parágrafo anterior, cada cadeira só

pode guardar um valor por vez, ou seja, se colocarmos o número 20 em uma cadeira chamada CADEIRAX, paracolocarmos outro número nessa mesma cadeira, o número 20 será substituído pelo novo número.

inicio N1, N2

N2 = 0 R = N1 / N2

Impossíveldividir

R

fim

não

sim

8/15/2019 AEDI01 Conceitos basicos

http://slidepdf.com/reader/full/aedi01-conceitos-basicos 4/7

 

Página 4 de 7E-mail professor: [email protected] –Arquivo: AEDI01 Conceitos basicos.doc

Tipos de Dados

Os tipos de dados mais usados são:

Numéricos – os dados numéricos são divididos em dois grupos: inteiros  e reais. Os números inteirospodem ser positivos ou negativos e não possuem parte fracionária. Já os números reais podem ser positivos ou

negativos e possuem parte fracionária. Os números reais dos exemplos seguintes estão expressos usando vírgulacomo separador da parte fracionária. Porém, a notação usada em programas, inclusive em algoritmos, deve ser umponto.

Exemplos de inteiros:-23650-325452

Exemplos de reais:

25,5285,90,0-75,0

Lógicos – os tipos lógicos são chamados também de booleanos (álgebra de Boole). Uma variável do tipológico só pode assumir o valor verdadeiro ou o valor  falso. Como exemplo, imagine uma variável que deva conterum valor que indique se está ou não chovendo. O nome da variável seria, por exemplo, CHOVENDO. Se estiverchovendo no momento, esta variável deve conter o valor verdadeiro, caso contrário, deve conter o valor  falso. Autilidade deste tipo de dado será discutida e apresentada em vários exemplos ao longo de nossa disciplina e vocêcompreenderá facilmente a sua utilização prática na elaboração de programas.

Literais – os tipos literais são também chamados de caracteres. Correspondem aos dados formados por umúnico caractere ou por uma cadeia de caracteres (por exemplo, uma frase). Esses caracteres podem ser letrasmaiúsculas, minúsculas, números e os caracteres especiais (por exemplo, @, $, +, /, ?, etc.). Note que os dados dotipo literal que possuem números não podem ser utilizados em cálculos.

Exemplos de dados literais:

“aluno”“12345”“[email protected]”“15 + 50”“14,98”

Formação de Identificadores para Variáveis

Identificadores são os nomes das variáveis. Podem ser também nomes de programas, de sub-rotinas, etc.Para criarmos uma variável devemos dar um nome para ela e é preciso entender algumas regras para a criaçãodesses nomes. Portanto, as regras básicas para a formação dos identificadores, que servem não só para variáveis,mas para todos os identificadores possíveis, são:

•  Usar somente os seguintes caracteres: números, letras maiúsculas, letras minúsculas e o caracteresublinhado.

•  O primeiro caractere deve ser sempre uma letra ou o sublinhado.•  Não são permitidos espaços em branco.• 

Não são permitidos caracteres especiais.•  Não podemos usar as palavras reservadas nos identificadores, ou seja, palavras que pertençam a

uma linguagem de programação. Palavras reservadas são palavras da linguagem de programaçãoque permitem-nos implementar os comandos. Você pode notar na terceira solução do exercício

8/15/2019 AEDI01 Conceitos basicos

http://slidepdf.com/reader/full/aedi01-conceitos-basicos 5/7

8/15/2019 AEDI01 Conceitos basicos

http://slidepdf.com/reader/full/aedi01-conceitos-basicos 6/7

 

Página 6 de 7E-mail professor: [email protected] –Arquivo: AEDI01 Conceitos basicos.doc

leia idade_cliente

leia saldo_cliente

Você pode notar que não temos um comando para ler a variável cliente_adimplente, que é do tipo de dadológico. As variáveis lógicas não são lidas, mas sim utilizadas com outra finalidade que você compreenderá maisadiante em nossa disciplina.

Uma observação importante diz respeito ao modo como este comando costuma ser utilizado. Assim que ocomputador executa um comando leia, ele faz aparecer o cursor na tela do computador e fica aguardando peladigitação de alguma coisa pelo usuário. Enquanto o usuário não digita algo e tecla enter, o computador fica paradoneste comando leia. Quando o usuário finalmente digita alguma coisa e tecla enter, o dado digitado é atribuídoautomaticamente para a variável que faz parte do comando leia.

Agora, imagine a seguinte cena: o computador executa o comando leia e fica parado aguardando peladigitação. O usuário olha para a tela e vê apenas um cursor piscando. O usuário sabe o que deve ser digitado?Provavelmente, não. Desta forma, sempre que colocamos um comando leia em nosso algoritmo, costumamoscolocar também um comando para escrever na tela um texto que informe ao usuário o que ele deve digitar.

Exemplo:

escreva "Digite o seu nome:"

leia nome_cliente

Acabamos de melhorar nosso trecho de programa com o exemplo acima. Agora, assim que esse programafor executado, o computador escreverá a frase “Digite o seu nome:” antes de aguardar pela entrada do usuário.Assim, o usuário compreenderá o que deverá ser digitado. É importante salientar que essa idéia nem sempre éimplementada em algoritmos do tipo Portugol, mas sempre quando implementamos um programa em umalinguagem de programação. De qualquer forma, facilita a lógica do algoritmo, tornando-o um pouco mais entendívelpor parte de quem fará a transcrição deste para uma linguagem real.

Comando de Saída de Dados

O comando de saída é utilizado para mostrar dados na tela ou na impressora. Esse comando é representadopela palavra reservada escreva, sublinhada. Os dados a serem escritos podem ser conteúdos de variáveis ou textosquaisquer.

Exemplos:

escreva "Digite o seu nome:"

escreva "Digite um número:"

escreva "O conteúdo da variável x é igual a ", x

escreva nome_cliente

Como você pode notar, o terceiro exemplo acima ilustra como mostrar o valor de uma variável seguido deuma frase. Sempre que fazemos, por exemplo escreva x, o computador escreve o conteúdo da variável x. Agora, sefizermos, por exemplo, escreva “x” , o computador escreverá a letra x na tela.

Comentários

É importante escrevermos comentários em nossos algoritmos. Um comentário consiste de uma frasequalquer que explique algum trecho de código ou alguma parte de nosso programa, para facilitar o entendimento doprograma no futuro, quando fizermos uma manutenção (correção) em nosso programa.

Uma das formas mais comuns de se incluir comentários em um programa consiste em explicar para que

serve cada uma das variáveis na declaração. Veja o algoritmo exemplo a seguir:Algoritmo

declare N1 numérico { N1 serve para obter o primeiro número }

8/15/2019 AEDI01 Conceitos basicos

http://slidepdf.com/reader/full/aedi01-conceitos-basicos 7/7

 

Página 7 de 7E-mail professor: [email protected] –Arquivo: AEDI01 Conceitos basicos.doc

declare N2 numérico { N2 serve para obter o segundo número }

declare R numérico { R serve para conter o resultado da divisão }

escreva "Digite um número"

leia N1

escreva "Digite outro número"

leia N2

se N2 = 0

então

escreva "Impossível dividir"

senão

R  N1 / N2

escreva "Divisão = ", R

fim-se

fim-algoritmo

O algoritmo acima corresponde ao mesmo da página 3 deste documento. Note que as três variáveis usadasno programa foram declaradas em linhas separadas para permitir a inserção dos comentários em cada uma delas,explicando para que servem.

Os comentários são extremamente úteis e necessários em várias partes de nossos programas, facilitandopossíveis manutenções nos mesmos. Cuidado para não inserir comentários em demasia para não correr o risco depoluir demais o código do programa. A maioria dos programadores não inserem comentários, o que torna umprograma de difícil manutenção, principalmente para um programador que venha a modificar um programa feito poroutra pessoa.

Os comentários devem ser inseridos entre os caracteres “{“ e “}” (chaves) e podem estar presentes emqualquer parte do algoritmo.