PC PROGRAMAÇÃO DE COMPUTADORES (Teoria) Aula 01 Prof. Ricardo Veras (prof.rveras@gmail.com)
ALGORITMOS "Seqüência ordenada de passos, que deve ser seguida para a realização de um tarefa" "Algoritmo é um conjunto finito de regras sequenciais bem definidas, para a solução de um problema em um tempo finito, e com um número finito de passos." Obs.: Algoritmos não se aprendem: Copiando algoritmos Estudando algoritmos Algoritmos só se aprendem: Construindo algoritmos Testando algoritmos
ALGORITMOS Formas de representação de algoritmos: - Descrição Narrativa; - Fluxograma; - Pseudocódigo (Linguagem Estruturada, Português Estruturado ou Portugol); Dependendo da forma de representação utilizada, é possível especificar com mais ou menos riqueza de detalhes, a operação (negócio) descrita pelo algoritmo.
ALGORITMOS Descrição Narrativa:... os algoritmos são expressos diretamente em linguagem natural. Exemplos: Troca de um pneu furado Passo 1 Afrouxar ligeiramente as porcas Passo 2 Suspender o carro Passo 3 Retirar as porcas e o pneu Passo 4 Colocar o pneu reserva Passo 5 Apertar as porcas Passo 6 Abaixar o carro Passo 7 Dar o aperto final nas porcas Cálculo da média de um aluno Passo 1 Obter as notas da primeira e da segunda prova Passo 2 Calcular a média aritmética entre as duas Passo 3 Se a média for maior ou igual a 7, o aluno foi aprovado, senão ele foi reprovado Obs.: cada passo pode ser detalhado em diversos outros passos, aumentando a riqueza de detalhes do algoritmo
ALGORITMOS Fluxograma (ou Diagrama de Blocos)... É uma representação gráfica, onde Formas Geométricas diferentes implicam Ações (instruções, comandos) distintas. Exemplo: Obs.: cada símbolo representa uma ação, e as setas, a ordem de execução das ações.
Símbolos de um Fluxograma: ALGORITMOS
ALGORITMOS Símbolos de um Fluxograma (cont.):
ALGORITMOS Pseudocódigo...é uma forma genérica de escrever um algoritmo, utilizando linguagem simples, de forma a ser entendido por qualquer pessoa, sem a necessidade de se conhecer uma linguagem de programação. Exemplo: Algoritmo Media Var N1, N2, Media Início Leia N1, N2 Media := (N1+N2)/2 Se Media >= 7 Entao Escreva Aprovado Senao Escreva Reprovado Fim. Obs.: é bastante rica em detalhes, e assemelha-se à forma em que os programas serão escritos.
ALGORITMOS Assim: No processo de criação de um Algoritmo, tenha sempre em mente: 1.Entenda o problema. 2.Verifique quais dados são necessários para garantir a resolução do problema. 3.Analise qual será a resposta dada de acordo com o que foi pedido, e como ela deve ser processada e apresentada.
ALGORITMOS Exercícios: Crie um Algoritmo Descritivo que elenque os passos para: 1 - Ir de Casa para o Shopping; 2 - Enviar um E-Mail; 3 - Escanear uma Imagem;
EXERCÍCIO 1 - Ir de Casa para o Shopping Passo 1 - Abrir a porta, sair de casa e fechar a porta. Passo 2 - Caminhar até o ponto de ônibus. Passo 3 - Pegar o ônibus que passa próximo ao shopping. Passo 4 - Descer do ônibus no ponto mais próximo do shopping. Passo 5 - Caminhar até o shopping. Passo 6 - Entrar no shopping.
EXERCÍCIO 2 - Enviar um E-Mail Passo 1 - Ligar o Computador. Passo 2 - Acionar o programa que acessa a Internet. Passo 3 - Abrir o site de e-mail. Passo 4 - Entrar com o nome e a senha do Usuário. Passo 5 - Clicar sobre o botão "Nova Mensagem". Passo 6 - Escrever a mensagem. Passo 7 - Clicar no botão "Enviar".
EXERCÍCIO 3 - Escanear uma Imagem Passo 1 - Ligar o Computador. Passo 2 - Ligar o Scaner. Passo 3 - Colocar a imagem no Scaner. Passo 4 - Acionar o programa que recebe os dados no Scaner. Passo 5 - Clicar no botão que inicia a fase de "escaneamento". Passo 6 - Guardar a imagem "escaneada" em algum diretório.
ALGORITMOS Representação de Um Algoritmo na Forma de Pseudocódigo Algoritmo <nome_do_algoritmo> Var <declaração_de_variáveis> <subalgoritmos> Início <corpo_do_algoritmo> Fim.
ALGORITMOS Exemplo: Algoritmo Media Var N1, N2, Media: Real Início Leia N1, N2 Media := (N1+N2)/2 Se Media >= 7 Então Escreva "Aprovado" Senão Escreva "Reprovado" Fim_se Fim.
ALGORITMOS TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: As instruções, que comandam o funcionamento da máquina e determinam a maneira como devem ser tratados os dados. Os dados propriamente ditos, que correspondem à porção das informações a serem processadas pelo computador.
TIPOS DE DADOS Tipos Inteiros São os dados numéricos positivos ou negativos (exclui-se destes, qualquer número fracionário). Como exemplo deste tipo de dado, tem-se os valores: 35, 0, -56, 1024 entre outros. Tipos Reais São os dados numéricos positivos e negativos e números fracionários. Como exemplo deste tipo de dado, tem-se os valores: 35, 0, -56, 1.2, -45.987 entre outros. (obs.: percebam que na caracterização dos números reais utilizamos o "ponto" como separação decimal)
TIPOS DE DADOS Tipos Caracteres São as seqüências contendo letras, números e símbolos especiais. Uma sequência de caracteres deve ser indicada entre aspas (""). Este tipo de dado também é conhecido como alfanumérico, string, literal ou cadeia. Como exemplo deste tipo de dado, tem-se os valores: "Programação", "Rua Alfa, 52 Apto 1", "Fone 574-9988", "04387-030", " ", "7" entre outros. Tipos Lógicos São os dados com valor verdadeiro e falso, sendo que este tipo de dado poderá representar apenas um dos dois valores. Ele é chamado por alguns de tipo booleano, devido à contribuição do filósofo e matemático inglês George Boole na área da lógica matemática.
VARIÁVEIS Para armazenar os dados na memória, imagine que a memória de um computador é um grande arquivo com várias gavetas, onde cada gaveta pode armazenar apenas um único valor (seja ele numérico, caractere ou lógico). Se é um grande arquivo com várias gavetas, é necessário identificar com um nome a gaveta que se pretende utilizar. Informações correspondentes a diversos tipos de dados são armazenadas nas memórias dos computadores. Para acessar individualmente cada uma destas informações, em princípio, seria necessário saber o tipo de dado desta informação (ou seja, o número de bytes de memória por ela ocupados) e a posição inicial deste conjunto de bytes na memória. Assim, uma variável é uma entidade destinada a guardar uma informação. Basicamente, uma variável possui três atributos: um nome, um tipo de dado associado à mesma e a informação por ela guardada.
VARIÁVEIS Adotaremos para os algoritmos, as seguintes regras: - um nome de variável deve necessariamente começar com uma letra; - um nome de variável não deve conter nenhum símbolo especial, exceto a sublinha (_), ou "underline", e nenhum espaço em branco; - um nome de variável não poderá ser uma palavra reservada a uma instrução de programa. Exemplos de nomes de variáveis: Salario correto 1ANO errado (não começou uma letra) ANO1 correto a casa errado (contém o caractere branco - "espaço") SAL/HORA errado (contém o caractere / ) SAL_HORA correto _DESCONTO errado (não começou com uma letra) leia errado (é uma palavra reservada de instrução)
VARIÁVEIS Definição de Variáveis em Algoritmos Todas as variáveis utilizadas em algoritmos devem ser definidas antes de serem utilizadas. Isto se faz necessário para permitir que o compilador reserve um espaço na memória para as mesmas. Nos algoritmos, todas as variáveis utilizadas serão definidas no início do mesmo, por meio de um comando de uma das seguintes formas: VAR <nome_da_variável> : <tipo_da_variável> <lista_de_variáveis> : <tipo_das_variáveis> Obs.: - Numa mesma linha poderão ser definidas uma ou mais variáveis ("<lista_de_variáveis>") do mesmo tipo. Neste caso, deve-se separar os nomes das mesmas por vírgulas; - Variáveis de tipos diferentes devem ser declaradas em linhas diferentes.
VARIÁVEIS Exemplo: VAR nome: caracter[30] idade, qtdpessoas, qtdareas: inteiro salario: real tem_filhos: lógico
OPERADORES Operadores são elementos fundamentais que atuam sobre operandos e produzem um determinado resultado. Por exemplo, a expressão 3 + 2 relaciona dois operandos (os números 3 e 2) por meio do operador (+) que representa a operação de adição. Operadores de Atribuição Um operador de atribuição serve para atribuir um valor a uma variável. Em Algoritmo usamos o operador de atribuição: := A sintaxe de um comando de atribuição é: Nome_da_Variável := expressão
OPERADORES Operadores Aritméticos Os operadores aritméticos se relacionam às operações aritméticas (matemáticas) básicas, conforme a tabela abaixo:
OPERADORES Expressões Aritméticas Toda Expressão Aritmética deverá ser linearizada quando escrito em uma linha de comando (linha de um programa de computador). Ex.: A expressão: x 1 = b + 2 b 2a 4ac Deverá ser escrita da seguinte forma: x1 = (-b + (b**2-4*a*c)**(1/2)) / 2*a Obs.: atenção à utilização de parênteses.
OPERADORES Operadores Literais Os operadores que atuam sobre caracteres variam muito de uma linguagem para outra. O operador mais comum, e mais usado, é o operador que faz a concatenação (união) de strings: toma-se duas strings e acrescenta-se (concatena-se, uni-se) a segunda ao final da primeira. O operador que faz esta operação é: + (sinal de mais) ou, (vírgula) Por exemplo, a concatenação das strings "ALGO" e "RITMO" é representada por: "ALGO" + "RITMO" e o resultado de sua avaliação é: "ALGORITMO" Obs.: em concatenação de cadeia de caracteres, a expressão: "23" + "45" resulta em "2345" Para se obter a soma dos valores, deve-se trabalhar com valores numéricos (23 + 45 = 68 -> sem as aspas, e com tipos numéricos) A concatenação usada em comandos de saída será com a vírgula. Ex.: Escreva ("Valor de x = ", x)
OPERADORES Comandos de Entrada de Dados Os comandos de entrada de dados são o meio pelo qual as informações dos usuários são transferidas para a memória dos computadores, para que possam ser usadas nos programas. No diagrama de blocos o comando de entrada de dados é representado por: = Operação de Entrada de Dados Há duas sintaxes possíveis para esta instrução: LEIA <variável> Ex: LEIA X LEIA <lista_de_variáveis> Ex: LEIA nome, endereco, cidade
OPERADORES Comandos de Saída de Dados Os comandos de saída de dados são o meio pelo qual informações contidas na memória dos computadores são colocadas nos dispositivos de saída (Monitor, Impressora, etc...), para que os usuários possam apreciá-las. No diagrama de blocos o comando de saída de dados é representado por: = Operação de saída de dados em impressora = Operação de saída de dados em vídeo
OPERADORES Comandos de Saída de Dados (cont.) Há quatro sintaxes possíveis para esta instrução: ESCREVA (<variável>) Ex: ESCREVA (X) ESCREVA (<lista_de_variáveis>) Ex: ESCREVA (nome, endereco, cidade) ESCREVA (<literal>) Ex: ESCREVA ("Algoritmo é o máximo!") ESCREVA (<literal>, <variável>,...,<literal>, <variável>) Ex: ESCREVA ("Meu nome é: ", nome, " e meu endereço é: ", endereco)
EXERCÍCIOS 1- Crie um programa em Diagrama de Blocos (Fluxograma) e em Português Estruturado que...: a....calcule e mostre a soma dos três números. b....peça duas notas de um aluno. Os pesos correspondentes destas notas devem ser: 6 e 4. Calcule e mostre a média ponderada dessas notas. c....peça o salário de um professor, calcule e mostre o novo salário sabendo-se que este teve um aumento de 10%. d....peça o salário de um empregado e o percentual de desconto que ele terá que descontar de seu salário para pagar seu plano médico, calcule e mostre o valor a ser pago e o novo salário com desconto.
EXERCÍCIOS a....calcule e mostre a soma dos três números. Algoritmo Soma Var n1, n2, n3, soma: inteiro Início Escreva ("Entre com os três números...") Leia n1, n2, n3 soma := n1+n2+n3 Escreva ("A soma dos números é: ", soma) Fim.
EXERCÍCIOS a....calcule e mostre a soma dos três números. INÍCIO N1, N2, N3 SOMA=N1+N2+N3 SOMA FIM
EXERCÍCIOS b....peça duas notas de um aluno. Os pesos correspondentes destas notas devem ser: 6 e 4. Calcule e mostre a média ponderada dessas notas. Algoritmo Media Var n1, n2, media: real Início Escreva ("Entre com as duas notas...:") Leia n1, n2 media := (n1*6 + n2*4)/10 Escreva ("A média é: ", media) Fim.
EXERCÍCIOS b....peça duas notas de um aluno. Os pesos correspondentes destas notas devem ser: 6 e 4. Calcule e mostre a média ponderada dessas notas. INÍCIO N1, N2 MEDIA=(N1*6 + N2*4)/10 MEDIA FIM
EXERCÍCIOS c....peça o salário de um professor, calcule e mostre o novo salário sabendo-se que este teve um aumento de 10%. Algoritmo Salario Var sal, novosal: real Início Escreva ("Entre com o salário do professor...") Leia sal novosal := sal*1.1 Escreva ("Novo salário = ", novosal) Fim.
EXERCÍCIOS c....peça o salário de um professor, calcule e mostre o novo salário sabendo-se que este teve um aumento de 10%. INÍCIO SAL NOVOSAL=N1*1.1 NOVOSAL FIM
EXERCÍCIOS d....peça o salário de um empregado e o percentual de desconto que ele terá que descontar de seu salário para pagar seu plano médico, calcule e mostre o valor a ser pago e o novo salário com desconto. Algoritmo Salario Var sal, percdesc, valpago, novosal: real Início Escreva ("Entre com o salário do empregado...") Leia sal Escreva ("Entre com o percentual de desconto...") Leia percdesc valpago := sal * (percdesc / 100) novosal := sal - valpago Escreva ("Valor a ser pago = ", valpago) Escreva ("Novo salário = ", novosal) Fim.
EXERCÍCIOS d....peça o salário de um empregado e o percentual de desconto que ele terá que descontar de seu salário para pagar seu plano médico, calcule e mostre o valor a ser pago e o novo salário com desconto. INÍCIO SAL, PERCDESC PERCDESC=SAL*(PERCDESC/100) NOVOSAL=SAL-PERCDESC NOVOSAL FIM