Apost Algoritmos Parte2

9
4 - Desenvolvendo algoritmos 4.1 Pseudocódigo Os algoritmos são descritos em uma linguagem chamada pseudocódigo (pode ser chamado também de Português Estruturado ou Portugol). Este nome é uma alusão à posterior implementação em uma linguagem de programação, ou seja, quando formos programar em uma linguagem, por exemplo Visual Basic, estaremos gerando código em Visual Basic. Por isso os algoritmos são independentes das linguagens de programação. Ao contrário de uma linguagem de programação não existe um formalismo rígido de como deve ser escrito o algoritmo. O algoritmo deve ser fácil de se interpretar e fácil de codificar. Ou seja, ele deve ser o intermediário entre a linguagem falada e a linguagem de programação. 4.2 Regras para construção do Algoritmo Para escrever um algoritmo precisamos descrever a seqüência de instruções, de maneira simples e objetiva. Para isso utilizaremos algumas técnicas: Usar somente um verbo por frase Imaginar que você está desenvolvendo um algoritmo para pessoas que não trabalham com informática Usar frases curtas e simples Ser objetivo Procurar usar palavras que não tenham sentido dúbio 4.3 Fases Vimos que ALGORITMO é uma seqüência lógica de instruções que podem ser executadas. É importante ressaltar que qualquer tarefa que siga determinado padrão pode ser descrita por um algoritmo, como por exemplo: CALCULAR O SALDO FINANCEIRO DE UM ESTOQUE Entretanto ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em três fases fundamentais. 8

description

Linguagem C

Transcript of Apost Algoritmos Parte2

Page 1: Apost Algoritmos Parte2

4 - Desenvolvendo algoritmos

4.1 Pseudocódigo

Os algoritmos são descritos em uma linguagem chamada pseudocódigo (pode ser chamado também de Português Estruturado ou Portugol). Este nome é uma alusão à posterior implementação em uma linguagem de programação, ou seja, quando formos programar em uma linguagem, por exemplo Visual Basic, estaremos gerando código em Visual Basic. Por isso os algoritmos são independentes das linguagens de programação. Ao contrário de uma linguagem de programação não existe um formalismo rígido de como deve ser escrito o algoritmo.

O algoritmo deve ser fácil de se interpretar e fácil de codificar. Ou seja, ele deve ser o intermediário entre a linguagem falada e a linguagem de programação.

4.2 Regras para construção do Algoritmo

Para escrever um algoritmo precisamos descrever a seqüência de instruções, de maneira simples e objetiva. Para isso utilizaremos algumas técnicas:Usar somente um verbo por fraseImaginar que você está desenvolvendo um algoritmo para pessoas que não trabalham com informáticaUsar frases curtas e simplesSer objetivoProcurar usar palavras que não tenham sentido dúbio

4.3 Fases

Vimos que ALGORITMO é uma seqüência lógica de instruções que podem ser executadas. É importante ressaltar que qualquer tarefa que siga determinado padrão pode ser descrita por um algoritmo, como por exemplo:CALCULAR O SALDO FINANCEIRO DE UM ESTOQUE

Entretanto ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em três fases fundamentais.

Onde temos:

ENTRADA: São os dados de entrada do algoritmoPROCESSAMENTO: São os procedimentos utilizados para chegar ao resultado finalSAÍDA: São os dados já processados

8

Page 2: Apost Algoritmos Parte2

Analogia com o homem

Exemplo de Algoritmo Imagine o seguinte problema: Calcular a média final dos alunos da 3ª Série. Os alunosrealizarão quatro provas: P1, P2, P3 e P4.Onde:Média Final =

Para montar o algoritmo proposto, faremos três perguntas:a) Quais são os dados de entrada?

R: Os dados de entrada são P1, P2, P3 e P4

b) Qual será o processamento a ser utilizado?

R: O procedimento será somar todos os dados de entrada e dividi-los por 4 (quatro)

c) Quais serão os dados de saída?

R: O dado de saída será a média final

AlgoritmoReceba a nota da prova1Receba a nota de prova2Receba a nota de prova3Receba a nota da prova4Some todas as notas e divida o resultado por 4Mostre o resultado da divisão

Teste de MesaApós desenvolver um algoritmo ele deverá sempre ser testado. Este teste é chamado de TESTE DE MESA, que significa, seguir as instruções do algoritmo de maneira precisa para verificar se o procedimento utilizado está correto ou não.

Veja o exemplo:Nota da Prova 1Nota da Prova 2

9

Page 3: Apost Algoritmos Parte2

Nota da Prova 3Nota da Prova 4Utilize a tabela abaixo:

5 - Tipos de Dados, Constantes e Variáveis

5.1 - Dados e Tipos de dados

Objetivo principal de um computador: é a manipulação de informações ou dados em uma forma codificada.

Os dados podem ser:- vendas mensais de uma loja- nomes e endereços de uma listagem para correio- notas atribuídas em um curso- medidas de uma experiência cientifica- votos de uma eleição - etc...

Basicamente os dados podem ser numéricos e não numéricos. Esta classificação é devido ao armazenamento na memória do computador.

- Numéricos: são dados que representam informações numéricas (inteiros e reais)- Não numéricos: são dados que representam informações não numéricas (alfanuméricos)

Classificação de tipos de dados

Dados Numéricos

Inteiros: correspondem aos números inteiros da aritmética, não tem componentes decimais ou fracionários. Podem ser positivos ou negativos.Exemplos: 13, 7, -6, 208, 7830, -28

Reais: correspondem aos números reais da aritmética e utilizam o “ponto decimal” para serem representados. As frações devem ser armazenadas na forma decimal, pois não existe mecanismo para armazenar o numerador e o denominador. Podem ser positivos ou negativos.Exemplos: 23,8 3738,72 -56,321 -8,910 -7,00

10

DADOS

NUMÉRICO

REAL INTEIRO

CADEIA DE CARACTERES ou “STRING” ouLITERAL

LÓGICO

Page 4: Apost Algoritmos Parte2

Dados Não Numéricos

São itens que podem ser armazenados e manipulados por um computador e que são conhecidos como cadeias de caracteres ou Literal ou “strings”. Estas cadeias podem conter caracteres alfabéticos (A, B, C, ..., X, Y, Z, a, b, c, ..., x, y, z), os dígitos numéricos (0, 1, 2, ..., 8, 9), e símbolos especiais ($, %, =, (, >, <, etc). As cadeias de caracteres normalmente são colocadas entre aspas ou apóstrofes.Exemplos:

“São Paulo”“A + B = C - D”‘Processamento de Dados’

Dados Lógicos

São dados que podem expressar dois valores apenas:- verdadeiro ou 1 (um)- falso ou 0 (zero)

Exemplos:CONDIÇÃO = FALSOse CONDIÇÃO é FALSO então para o processamento.

5.2 Constantes

Constante é um determinado valor fixo que não se modifica ao longo do tempo, durante a execução de um programa. Conforme o seu tipo, a constante é classificada como sendo numérica, lógica e literal.Exemplo de constantes:

5.3 - Variáveis

Em um programa de computador, uma variável é uma entidade que possui um valor. Este valor pode ser alterado ao longo do tempo da execução do programa.

Como na matemática, em programas de computador, o uso de variáveis permite a especificação de uma fórmula geral de cálculo. As variáveis têm nomes para sua identificação e também recebem valores. Na verdade, as variáveis são “apelidos” que atribuímos a certos endereços da memória RAM.

Uma variável pode receber muitos valores diferentes, mas em um dado instante, ela pode ter somente um valor.

5.3.1 - Operação de Atribuição

Uma operação de atribuição é a forma para especificar que a uma variável será dado um valor.

11

Page 5: Apost Algoritmos Parte2

A operação de atribuição pode ser indicada pelo símbolo de igual ( = ) ou uma seta para esquerda ( ).Por exemplo, o comando

A 3Indica que à variável de nome A é atribuído o valor 3.

Em termos de componentes de um computador pode-se definir como: “A” representa uma palavra do computador, e após a execução deste comando, a posição de memória de nome “A” conterá um valor igual a 3. Uma vez que uma palavra na memória pode conter somente um valor por vez, o número 3 substitui qualquer outro valor armazenado anteriormente nesta variável. Assim esta operação é uma operação destrutiva.

Então se a sequência de operações:A = 16A = -27A = 1

fosse executada, o valor da variável “A” após as três operações será 1. Os valores 16 e –27 foram destruídos.

5.3.2 - Operações primitivas

A adição e a subtração são representadas na forma usual da matemática, e internamente no computador são realizadas usando “aritmética binária”.

A multiplicação é representada pelo símbolo asterisco ( * ) para evitar confusão com a letra “x”.Exemplos:

36,8 * 2,59A * BX * Y3 * 4

A divisão tem problema notacional, pois normalmente é indicada na forma de um fração. Como todo comando dado a um computador tem que ser representado em uma só linha, então utiliza-se a barra ( / ) para indicar a operação de divisão.Exemplos:

8 / 2A / B4,56 / 1,12

A exponenciação é a quinta operação numérica disponível na maioria das linguagens de programação. O problema notacional é resolvido utilizando o símbolo de uma seta apontada para cima ( ) ou um acento circunflexo ( ^ ) para representar esta operação.Exemplos:

2 4X 2Y ^28 ^2

Prioridade dos operadores Aritméticos

12

Page 6: Apost Algoritmos Parte2

PRIORIDADE OPERADOR SIGNIFICADO EXEMPLO1 ^ Exponenciação A^3 = A3

2 - Negação de um valor -A3 * Multiplicação A*B3 / Divisão 8 / 24 + Adição 4+14 - Subtração L-6

As prioridades são as mesmas usuais na matemática comum, devendo ser lembrado que os parênteses ( ) podem ser aplicados para quebrar as prioridades dos operadores, haja visto que expressões entre parênteses são realizadas em primeiro lugar.

5.3.3 - Operadores Especiais (MOD e DIV)

MOD Retorna o resto da divisão entre 2 números inteiros.DIV Retorna o valor inteiro que resulta da divisão entre 2 números inteiros.

5.3.4 - Operadores Relacionais

Os operadores relacionais são normalmente usados nas comparações de valores (variáveis), realizadas nos testes.

OPERADOR SIGNIFICADO EXEMPLO= Igualdade SE A = 3 ENTÃO...<> Diferença SE B <> 0 ENTÃO...< Menor que SE R < 1 ENTÃO... > Maior que SE D > A ENTÃO...<= Menor ou igual SE F <= 10 ENTÃO...>= Maior ou igual SE D >= 5 ENTÃO...

5.3.5 - Operadores Lógicos

Estes operadores, que fazem parte da Álgebra Booleana, também podem ser usados em testes de variáveis e expressões matemáticas.

PRIORIDADE OPERADOR EXEMPLO1 NÃO (NOT) SE NÃO A < B ENTAO...2 E (AND) SE A > 3 E A < 5 ENTAO...3 OU (OR) SE A > B OU A <> 0 ENTÃO...

5.3.6 - FUNÇÕES

Uma função é um instrumento (Sub–algoritmo) que tem como objetivo retornar um valor ou uma informação.

A chamada de uma função é feita através da citação do seu nome seguido opcionalmente de seu argumento inicial entre parênteses.

As funções podem ser predefinidas pela linguagem ou criadas pelo programador de acordo com o seu interesse.

13

Page 7: Apost Algoritmos Parte2

BIBLIOTECAS DE FUNÇÕES

Armazenam um conjunto de funções que podem ser usadas pelos programas.

FUNÇÕES PRÉ-DEFINIDAS

ABS( ) VALOR ABSOLUTO X ABS(-8) resultado: X=8SQRT( ) RAIZ QUADRADA X SQRT(25) resultado: X=5SQR( ) ELEVA AO QUADRADO X SQR(3) resultado: X=9TRUNC( ) VALOR TRUNCADO X TRUNC(2,45) resultado: X=2ROUND( ) VALOR ARREDONDADO X ROUND(3,6) resultado: X=4

As funções acima são as mais comuns e importantes para nosso desenvolvimento lógico, entretanto, cada linguagem possui suas funções próprias. As funções podem ser aritméticas, temporais, de texto e etc.

14