SEBENTA INTRODUÇÃO Á ALGORITMIA O desenvolvimento de programas para computador está sempre baseado na tarefa de programar um computador para seja resolvido um problema ou executada uma função e assim dar resposta às necessidades dos utilizadores dos sistemas de informação. Existem vários métodos de trabalho para auxílio na tarefa de entendimento e percepção dos problemas computacionais. Para esta disciplina optou-se pelo método de pseudocódigo ou mais pròpriamente português estruturado, o qual facilita a documentação descritiva da solução e serve também de instrumento de apoio a ser utilizado numa eventual necessidade de consulta futura sobre a estratégica lógica usada. O Português estruturado é uma representação textual de um determinado algoritmo computacional. É um método que tem a finalidade de apresentar uma codificação simples que seja de fácil tradução para as linguagens de programação de computador. O objectivo do método é o de facilitar a descrição textual de um programa numa linguagem mais natural e mais próxima ao entendimento humano, de preferência no idioma do desenvolvedor. 1) INSTRUÇÕES BÁSICAS: As Instruções básicas são representadas por um conjunto de primitivas (vocabulário) em português estruturado como segue: Início, fim, var, programa, enquanto fim-enquanto, se, então, senão, fim-se, para, fim-para, escrever, ler, fazer, repetir, até-que, conjunto, inteiro, real, caracter, lógico, tipo, registo, fim-registo, procedimento, função, caso e fim-caso.
Exemplo 1: Desenvolver o algoritmo de um programa de computador que efectue a leitura de dois valores numéricos inteiros, execute a sua soma e apresente o resultado obtido. Algoritmo: a) Entrada - ler dois valores inteiros (representados por duas variáveis A e B) b) Processamento - efectuar a soma das duas variáveis A e B, colocando o seu resultado na variável R. c) Saída - mostrar o conteúdo da variavel R, após o processamento Obs: O algoritmo é a interpretação passo a passo de um determinado problema. Português Estruturado: Programa soma-de-números início ler (A) ler (B) R<- A + B escrever (R) fim Obs.: O bloco de instruções do programa é incluído entre as primitivas início e fim. A instrução de atribuição são representadas por, sendo a ordem de atribuição de valores da direita para a esquerda.
2) TOMADA DE DECISÃO Para que seja necessário tomar uma decisão num computador é necessário ter uma condição, a qual pode devolver uma de duas respostas: sim ou não, verdadeira ou falsa. 2.1 Decisão simples A decisão de tipo simples caracteriza-se por prever uma acção lógica quando a condição é verdadeira. Se a condição for falsa, não será executado absolutamente nada. Representa-se como: se (<condição>) então <instruções para condição verdadeira> fim_se 2.2 Decisão composta Decisão simples, com a introdução da instrução senão. Representa-se: se (<condição>) então <instruções para condição verdadeira> senão <instruções para condição falsa> fim_se <instruções comuns para condição falsa ou verdadeira> 2.3 Decisão encadeada Caracteriza-se por prever uma acção lógica quando ocorre a necessidade de estabelecer uma verificação lógica numa sequencia de condições sucessivas, sendo assim que uma determinada acção pode ser executada se um conjunto anterior de condições tiver sido satisfeito. Representa-se: se(<condição1>) então <instruções para condição1 verdadeira> senão se (<condição2>) então <instruções para condição2 verdadeira mas condição1 falsa> senão <instruções para condição1 e condição2 falsas> fim_se fim_se <instruções comuns após verificação das condições>
2.4 Operadores relacionais Para que seja possível verificar o estado lógico de uma determinada condição quanto à possibilidade de ser verdadeira ou falsa, é necessário utilizar os operadores lógicos: Maior do que = igual a < > diferente de < menor que >= maior ou igual a <= menor ou igual a 2.5 Operadores lógicos Operador de conjunção e Condição1 Condição2 Resultado falsa falsa falso verdadeira falsa falso falsa verdadeira falso verdadeira verdadeira verdadeiro Operador de disjunção ou Condição1 Condição2 Resultado falsa falsa falso verdadeira falsa verdadeiro falsa verdadeira verdadeiro verdadeira verdadeira verdadeiro Operador de negação não Condição1 verdadeira falsa Resultado falso verdadeiro
Exemplo 2: Ler dois valores numéricos, efectuar a adição e apresentar o seu resultado caso o valor somado seja maior do que 10. Algoritmo: 1. Conhecer dois valores incógnitos (estabelecer variáveis A e B); 2. Efectuar a soma dos valores incógnitos A e B, implicando o valor da soma, na variável X; 3. Apresentar o valor da soma contido na variável X, caso o valor de X seja maior do que 10 Português estruturado: Programa SOMA-de-NUMEROS Início Ler (A) Ler (B) X <- A + B Se (X > 10) então Escrever (X) Fim se Fim
Exemplo 3: Ler dois valores numéricos e efectuar a adição. Caso o resultado seja maior ou igual a 10, deve ser acrescido de mais 5; caso contrário, este resultado deve ser diminuído em 7. No fim, apresentar o resultado após a avaliação da condição. Algoritmo: 1. Conhecer dois valores (variáveis A e B); 2. Efectuar a soma dos valores A e B e atribuir o valor da soma a X; 3. Verificar se X é maior ou igual a 10; caso seja, calcular R X+5, senão calcular R X-7 e apresentar no final o valor de R Português estruturado Programa soma-de-numeros Início Ler (A, B) X A + B Se (X >= 10) então R X + 5 Senão R X-7 Fim se Escrever (R) Fim
3) CICLOS DE REPETIÇÃO 3.1 Ciclo Enquanto Caracteriza-se por efectuar um teste condicional no início do ciclo. Representa-se: enquanto (<condição>) fazer instruções executadas enquanto condição for verdadeira fim_enquanto 3.2 Ciclo Repetir Caracteriza-se por efectuar um teste condicional no final do ciclo. Representa-se: repetir instruções executadas até que condição se torne verdadeira até_que (<condição>) 3.3 Ciclo Para Caracteriza-se por efectuar um ciclo por um determinado número de vezes prèviamente definido. Representa-se: para variável de início até final passo incremento fazer instruções executadas até contador atingir o seu final fim_para 4) ESTRUTURA DE CONTROLO COM MÚLTIPLA ESCOLHA Quando houver a necessidade de construír um programa no qual seja necessário utilizar uma grande sequencia de instruções do tipo se, sejam estas uma após a outra ou mesmo encadeadas, pode ser simplificada com a utilização da instrução caso.. fim_caso. Representa-se: caso <variável> seja <valor1> fazer <operação1> seja <valor2> fazer <operação2> seja <valorn> fazer <operaçãon> senão <operação padrão> fim_caso
Um programa de computador é uma série de instruções codificadas para o computador obedecer e representa um método de processamento de dados. Dados é o nome dado a factos. Por exemplo, numa empresa o número de horas trabalhadas pelos funcionários ou os níveis de stock representam dados. Os dados são entrados (input) num computador, processados sob a direcção de um programa em resultados, que saiem na forma de, por exemplo, um relatório (output). 1.1 Memória A memória de um computador é composta de muitos milhares de células chamadas bytes. Cada byte é capaz de armazenar oito bits (binary digits) e tem um endereço único na memória de um computador. 1.2 Inteiros Os inteiros (integers) são armazenados dentro de um número fixo de bytes. Uma dimensão comum para o armazenamento de inteiros é de dois bytes, que dá um intervalo para o armazenamento de inteiros de -32768 a +32767. Qualquer inteiro fora deste intervalo não pode ser armazenado num computador como inteiroer). De uma forma geral algumas linguagens de programação distinguem entre inteiros curtos (short integers), armazenados num byte, inteiros (integers) armazenados em dois bytes e inteiros longos (long integers). 1.3 Reais Os números reais são armazenados dentro de um número fixo de bytes usando uma representação de vírgula flutuante do número. O número de bytes pode variar entre quatro, seis e oito, contudo quatro é o mais comum. Os números reais têm duas partes, uma mantissa (a parte de fracção) e um expoente (a potência a que a base do número deve ser elevada de
forma a dar o valor correcto do número quando multiplicado pela mantissa). Por exemplo 437,875, pode também ser escrito como 0,437875xE3, onde 0,437875 é a mantissa, 3 o expoente e E representa a base 10, sendo assim E3, 10 elevado ao cubo. 1.4 Caracteres Os caracteres são armazenados na memória usando códigos binários de 7 bits. Por exemplo, o carácter A é codificado como 65, B é codificado como 66, C é codificado como 67, etc. A lista de códigos de caracteres ASCII é dada a seguir: Código Caracter Código Caracter Código Caracter 000 NUL 043 + 086 V 001 SOH 044, 087 W 002 STX 045-088 X 003 ETX 046. 089 Y 004 EOT 047 / 090 Z 005 ENQ 048 0 091 [ 006 ACK 049 1 092 \ 007 BEL 050 2 093 ] 008 BS 051 3 094 ^ 009 HT 052 4 095 _ 010 LF 053 5 096 011 VT 054 6 097 a 012 FF 055 7 098 b 013 CR 056 8 099 c 014 SO 057 9 100 d 015 SI 058 : 101 e 016 DLE 059 ; 102 f 017 DC1 060 < 103 g 018 DC2 061 = 104 h 019 DC3 062 > 105 i 020 DC4 063? 106 j 021 NAK 064 @ 107 k 022 SYN 065 A 108 l 023 ETB 066 B 109 m 024 NA 067 C 110 n 025 EM 068 D 111 o 026 SUB 069 E 112 p 027 ESC 070 F 113 q
.................. 1.5 Variáveis Os dados podem ser pensados como ocupando áreas na memória do computador da mesma forma como as pessoas ocupam casas numa rua. Para distinguir diferentes famílias em diferentes casas, pode-se usar ou o apelido da família ou o número da casa. Para distinguir dados em diferentes áreas da memória, pode-se dar aos dados um nome ou usar o endereço de memória onde os dados estão guardados. Nas linguagens de programação, de uma forma geral, é muito mais fácil referir aos dados por nome e deixar o computador fazer o trabalho de encontrar onde os dados estão armazenados na memória. O identificador de um nome pode conter qualquer combinação de letras do alfabeto (tanto maiúsculas como minúsculas) e dígitos decimais, desde que o identificador comece com uma letra, dependendo contudo das características da linguagem de programação em questão. Um programador deve sempre compor os identificadores de forma a transmitirem o significado dos dados que contém. As ditas palavras reservadas de uma linguagem de programação, não devem ser usadas como identificadores. Exemplos de palavras reservadas nalgumas linguagems : AND END MAXINT REPEAT ARRAY FILE MOD SET BEGIN FOR NOT THEN CASE FORWARD OF TO Etc. etc. Todas as variáveis usadas pelas instruções num programa, devem ser declaradas no local adequado de acordo com a linguagem de programação usada.
1.6 Constantes Em muitos programas há valores de dados que não mudam, mantendo-se constantes ao longo da execução do programa. Exemplos: IVA (21%), pi (3,14159) e o símbolo de percentagem (%).