Buscar

AULA 2 Algoritmos

Prévia do material em texto

CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 
 
1
AULA 2: CONSTRUÇÃO DE ALGORITMOS EM PSEUDOCODIGO 
 
 
Para iniciar um algoritmo precisamos dividir o problema em três fases 
fundamentais : 
 
ENTRADA: Dados que alimentam o sistema, informações inseridas pelo 
usuário. 
 
PROCESSAMENTO: Cálculos e manipulações dos dados de entrada. 
 
SAÍDA: Resultado obtido do processamento dos dados. 
 
 
ENTRADA PROCESSAMENTO SAÍDA
 
 
Estrutura de um algoritmo: 
 
 
Na especificação de um algoritmo em Pseudocódigo é necessário o 
estabelecimento de uma estrutura a fim de organizar o mesmo em seções. Os 
algoritmos desenvolvidos em pseudocódigo possuem a seguinte estrutura: 
 
ALGORTIMO <nome do algoritmo> 
<área de declarações> 
INÍCIO 
<área de instruções> 
FIM 
 
 
Dentro desta estrutura tem-se as seguintes definições e espaços para 
códigos específicos: 
 
• ALGORTIMO: palavra reservada para indicar o início de um algoritmo; 
 
• nome do algoritmo: é somente um nome simbólico dado ao algoritmo 
com a finalidade de distingui-lo dos demais; 
 
• área de declarações: espaço designado para a declaração das 
informações (variáveis, constantes, tipos de dados do usuário, 
procedimentos e funções) que serão usadas na seqüência lógica de 
instruções do algoritmo; 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 
 
2
• INÍCIO e FIM: palavras reservadas que delimitam o início e o fim da 
seqüência lógica de instruções ou do algoritmo; e 
 
• área de instruções: espaço designado para a especificação da 
seqüência lógica de instruções do algoritmo que será executada para 
se atingir seu objetivo. 
 
 
INSTRUÇÕES/COMANDOS PRIMITIVOS: 
 
 
A manipulação de dados por um algoritmo é feita através da 
especificação de instruções que os manipulam. Dentro o conjunto de instrução 
do pseudocódigo, ou de uma linguagem de computador, são consideradas 
instruções ou comandos primitivos aquelas que efetuam as tarefas essenciais 
para a operação dos computadores, como a entrada e saída de dados e a 
movimentação dos mesmos para a memória. São eles, os comandos de 
atribuição e de entrada e saída de dados. 
 
 
 
COMANDO DE ATRIBUIÇÃO: 
 
 
Quando definimos uma variável, para a manipulação por nosso 
algoritmo, é natural que queiramos atribuir a ela algum valor. Uma das formas 
de atribuir um valor a uma variável e, consequentemente colocar este dado 
para dentro da memória do computador, é através de uma atribuição direta do 
valor desejado para a variável. Para tanto, utiliza-se o símbolo de atribuição ( 
← ) que indica que o valor (ou o resultado da avaliação de uma expressão) 
que está à direita do símbolo de atribuição será colocado na posição de 
memória indicada pela variável que está a esquerda do símbolo, conforme a 
sintaxe abaixo: 
 
Nome da Variável ← Valor ou Expressão 
 
Deste momento em diante, o acesso àquele valor se dará através da 
invocação do nome da variável. Deve-se ter em mente que, como uma variável 
possui um tipo de dado associado, o valor ou resultado da avaliação de uma 
expressão a ser atribuido àquela variável deverá ser, obrigatoriamente, do tipo 
de dado definido para a variável. Uma exceção a esta restrição é o conceito de 
coerção, ou seja, a possibilidade de associação de um valor inteiro a uma 
variável do tipo numérico real. 
 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 
 
3
 
Como exemplo poderíamos ter as seguintes atribuições: 
 
A ← V; 
Resultado ← 5; 
B ← 5 + 13/4; 
Sexo ← "F"; 
Dolar ← 1.98; 
Nome ← "JOSE"; 
 
 
Observação: Na linguagem de programação C++, o comando de 
atribuição é feito pelo = (igual) e em Pascal é feito pelo := (dois 
pontos igual). 
 
Exemplo de atribuição: Resultado ← 5; 
 
 
 
COMANDOS DE ENTRADA E SAÍDA DE DADOS: 
 
O computador não é uma máquina isolada e precisa interagir com o 
mundo exterior, quer seja para receber dados fornecidos por um usuário, 
colocando-os na memória, quer seja para fornecer ao usuário os resultados de 
seus processamentos. Isto é feito através dos comandos primitivos de entrada 
e saída de dados. 
 
Os comandos de saída de dados são a forma pela qual informações 
contidas em sua memória são colocadas em um dispositivo de saída (vídeo, 
impressora, etc) para que o usuário possa apreciá-las. A sintaxe de um 
comando de saída é dada abaixo: 
 
ESCREVA “ variável/constante/expressão/literal “; 
 
Este comando gera uma saída no vídeo que poderá ser o valor de uma 
variável, uma constante, o resultado da avaliação expressão, um literal 
(conjunto de caracteres delimitados por aspas) ou qualquer combinação deste 
elementos deste que separados por vírgula. 
 
Por outro lado, os comandos de entrada de dados são a forma pela qual 
dados são fornecidos ao computador através de dispositivos de entrada 
(inicalmente somente através do teclado) e armazenados em sua memória, 
nas variáveis especificadas no comando de entrada. Desta forma, pode ser 
entendido como o inverso de um comando de saída de dados. A sintaxe de um 
comando de entrada de dados é dada abaixo: 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 
 
4
LEIA lista de variáveis; 
 
A partir deste ponto, tem o leitor os comandos básicos necessários para 
especificar as três fases de um algoritmo (Entrada, Processamento e Saída), 
podendo assim desenvolver seus primeiros exercícios. 
 
Observações: 
- Na linguagem de programação C++, o comando de entrada é o cin>> 
e o comando de saída é o cout<< 
- Na linguagem de programação Pascal, o comando de entrada é o read 
ou readln e o comando de saída write ou writeln 
 
 
 
ESTRUTURA SEQUÊNCIAL SIMPLES 
 
Um algoritmo em estrutura sequêncial exprime linhas de comando que 
serão executadas apenas uma vez, uma após a outra. 
Apenas a estrutura sequêncial em um algoritmo terá uma saída 
previsível, porém, combinada com as estruturas condicionais e de repetição 
tornarão essenciais. 
 
 
Exemplo: 
 
algoritmo exemplo 
inteiro A, B, C; 
inicio 
 escreva “Digite um valor: “; 
 leia A; 
 escreva “Digite outro valor: “; 
 leia B; 
 C ← A + B; 
 Escreva “A soma de “, A, “ e “, B, “ = “, C; 
fim 
 
 
Exemplo usando a linguagem de programação C++: 
 
 
#include <iostream> //instrui o compilador a usar a biblioteca padrão 
 
using namespace std; //uso do namespace padrão std (usado no cin , cout) 
 
int main() //cabeçalho da função principal (main) 
{ //inicio da função 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 
 
5
 
int A, B, C; //declaração de três variáveis do tipo inteiro 
 
 cout<< “Digite um valor: “; //escreve na tela o texto entre aspas 
 cin>>A; //le um valor do teclado e armazena na variável indicada (A) 
 cout<< “Digite outro valor: “; 
 cin>> B; 
 //soma os valores que estão armazenados nas variáveis A e B e armazena em C 
 C = A + B; 
 cout<< “A soma de “<< A<< “ e “<< B<< “ = “<< C; 
 system(“pause”); //faz com que o sistema fique pausado 
 return 0; // ela retorna o controle para o sistema operacional. 
 
} //fim da função 
 
Comentários em C++ 
Um comentário é um texto adicionado para explicar (para você ou outros 
programadores) o que está acontecendocom seu código. O comentário não 
tem efeito; serve apenas como documentação. 
Há dois tipos de comentários em C++. O comentário de barra dupla (//), que 
chamaremos de comentário no estilo C++, manda o compilador ignorar tudo 
que vem depois das barras até o final da linha. 
O comentário de barra-asterisco (/*), no estilo C, manda o compilador ignorar 
tudo o que vem depois até que uma marca de comentário de asterisco-barra 
(*/) seja detectada. 
 
Diretivas de compilação: 
 
 As diretivas de compilação include e define, são comandos processados 
durante a compilação. Elas incluem as bibliotecas e constantes que serão 
anexadas quando o programa executável for criado. 
 As bibliotecas agrupam funções de acordo com as finalidades, pois se 
não fizéssemos uso delas, os programas seriam muito extensos e lentos. 
 
Sintaxes: 
 
#include <nome da biblioteca> 
#include “nome da biblioteca” 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – ano 2010 
 
6
 Onde nome da biblioteca é o nome da biblioteca que se deseja incluir. 
Estando entre os sinais <e> significa que está no diretório padrão e ficando 
entre “, significa que precisamos fornecer o caminho onde se encontra a 
biblioteca. 
 
 
Exemplos de bibliotecas: 
 
 
FUNÇÕES NUMÉRICAS 
Biblioteca (cmath) 
ceil(x) Arredonda valor real 
para cima (ex: 
ceil(3,2) =4) 
floor(x) Arredonda valor real 
para baixo (ex: 
ceil(3,2) =3) 
sin(x) seno de um ângulo em 
radianos 
cos(x) co-seno de um ângulo 
em radianos 
tan(x) Tangente de um 
ângulo em radianos 
abs(x) Valor absoluto do 
número inteiro 
fabs(x) Valor absoluto do 
número real 
exp(x) número e elevado a 
potência x 
log(x) logaritmo natural de x 
log10(x) Logaritmo decimal de 
x 
sqrt(x) raiz quadrada do 
número 
pow(base,ex
p) 
Calcula x elevado a y 
FUNÇÕES CHAR 
Biblioteca (cstring) 
strcpy(s1, s2) Para armazenar 
uma string literal 
numa variável string 
- ou copiar o 
conteúdo de uma 
variável string para 
outra 
strcat(s1, s2) Concatena s2 no 
final da s1. 
strcmp(s1,s2) compara, <0 se s1<s2, 
0 se s1==s2, 
>0 se s1>s2 
strncpy(s1, 
s2,n) 
copia ate n caracteres 
strlen(s) tamanho de s sem 
contar com \0 
endereço do primeiro / 
ultimo caractere c em s 
ou 0 
 
strchr(s,c) 
strrchr(s,c) 
 
strstr(s,sub) 
 
endereço do primeiro 
substring em s ou 0 
strupr(string) 
 
converte uma string 
para maiúscula 
strlwr (string) converte uma string 
para minúscula 
Biblioteca 
(ctype) 
toupper(char) Converte um único 
caractere para 
maiúsculo 
tolower(char) Converte um único 
caractere para 
minúsculo

Continue navegando