Você está na página 1de 9

Apostila Fundamentos de Programaao

Introduo
Como se tornar um bom programador? Entrevistador: A melhor forma de se preparar um programador estudar cincia da computao? Bill Gates: No, a melhor forma de se preparar escrevendo programas e estudar grandes programas escritos por outras pessoas. No meu caso, eu ia para a lixeira do centro de Computer Science da faculdade e pegava cdigos de seus sistemas operacionais. Atuao de um programador Avalia requisitos Decompe problemas Decompe sistemas Cria scripts (sequencias de comandos que automatizam algum processo) auxiliares Constri programas Testa programas Ferramentas de um programador Editor de textos Compilador Controlador de verses Testador automtico Scripts customizados

Base de algoritmos e programao


O que um algoritmo? um conjunto finito de passos cujo objetivo solucionar determinado problema. A representao de um algoritmo pode ser textual (utilizando passos numerados, portugol, pargrafo explicativo, etc) ou grfica (fluxograma). Exemplo de algoritmo Pegar dinheiro no caixa eletrnico
Algoritmo CaixaEletronico: Inicio Insira o carto Retire o carto Digite senha numrica Escolha opo saque Escolha o valor Digite senha alfanumrica Retire o dinheiro Algoritmo CaixaEletronico: Fim

Algoritmo de gerenciamento de despesas e receitas Deve-se somar as receitas e as despesas separadamente. Em seguida as receitas so diminudas do valor das despesas. Se o saldo for negativo um emprstimo feito.
Algoritmo ReceitasDespesas: Inicio Obtenha os valores de receitas e despesas Some os valores das receitas e armazene em somaReceitas Some os valores das despesas e armazene em somaDespesas Faa somaReceitas-somaDespesas e armazene em saldo

Se saldo < 0 Ento Faa um emprstimo cujo valor igual ao saldo Algoritmo ReceitasDespesas: Fim

O que um programa? Programa um algoritmo escrito em uma linguagem de programao (Java, ABAP, C#, VB). Exemplo de programa que calcula a mdia de dois valores em ABAP:
REPORT zmedia. DATA: v_media TYPE p DECIMALS 2. PARAMETERS: num1 TYPE i, num2 TYPE i. START-OF-SELECTION. v_media = ( num1 + num2 ) / 2. WRITE: A mdia dos nmeros inseridos , v_media.

O que linguagem de programao? Linguagem de programao uma linguagem artificial utilizada para especificar instrues para computadores.

Algoritmo avanado
Para projetar um algoritmo deve-se (a) Entender o problema (b) Identificar entradas e sadas (c) Escrever a sequencia de passos, condies e repeties necessrias para transformar as entradas em sadas usando uma linguagem algortmica (representao textual / grfica) (d) Converter o algoritmo em um programa

Sequncia Algoritmos so executados um passo aps o outro na forma de sequncia. Escolha de um prato no restaurante: Representao textual:
Algoritmo Restaurante: Inicio Entre no restaurante Escolha uma mesa Leia o menu Escolha o prato Chame o garom Informe sua escolha Algoritmo Restaurante: Fim

Representao Grfica:

Exerccios de sequncia Faa algoritmos:

(a) Fritar um ovo (b) Comprar ingressos para o cinema (c) Trocar uma fralda

Desvio Certos passos devem ser executados apenas em determinadas condies. Exemplo: Atravessar a rua tomando deciso: Representao textual:
Algoritmo AtravessarRua: Inicio Ande at o limite da calada Olhe para ambos os lados Se a rua estiver livre Ento atravesse a rua Seno aguarde Algoritmo AtravessarRua: Fim

Representao Grfica:

Exerccios Desvio Considere os exerccios de sequncia e altere da seguinte forma: (a) A frigideira est suja (b) No h ingressos para o filme que voc deseja assistir (c) O talco acabou Operadores = - Igual <> - Diferente de > - Maior que < - Menor que >= - Maior ou igual <= - Menor ou igual Operadores lgicos E Conector E OU Conector OU ! Negao Estruturao de desvios

Os desvios podem ser representados por SE-ENTO, SENO-SE-ENTO e SENO. Exemplos de desvios Algoritmo de deciso da necessidade de usar casacos de acordo com a temperatura
Algoritmo RoupaFrio: Incio Se TEMPERATURA < 10 Ento vestir casaco de pele Seno Se TEMPERATURA < 20 Ento vestir casaco Seno Vestir qualquer roupa Algoritmo RoupaFrio: Fim

Algoritmo de aprovao Regra: O aluno est aprovado se uma de suas duas notas for igual ou maior que 5. Exemplo A Sem usar operador lgico
Algoritmo NotaSemOperadorLogico: Inicio Se N1 >= 5 Ento aluno aprovado Seno Se N2 >= 5 Ento aluno aprovado Seno Aluno reprovado Algoritmo NotaComOperadorLogico: Fim

Exemplo B Usando operador OU


Algoritmo NotaComOperadorOU: Inicio Se N1 >= 5 OU N2 >= 5 Ento aluno aprovado Seno Aluno reprovado Algoritmo NotaComOperadorOU: Fim

Exerccio algoritmo de aprovao Adicionar aos exemplos dos algoritmos de aprovao anteriores, A e B, a seguinte regra: Alm de uma das notas serem maiores ou iguais a 5 para o aluno obter aprovao, o aluno deve ter frequncia maior que 70%. Outros exerccios (a) Faa um algoritmo que valide a hora tendo as variveis HORA, MINUTO e SEGUNDO. (b) Elabore um algoritmo que receba a NOTA e converta para conceito (ABCD), segundo valores abaixo: a. Nota 9 ou 10: A b. Nota 7 ou 8: B c. Nota 5 ou 6: C d. Nota 0 ou 4: D Testes Os programas passam por dezenas de testes, dependendo da sua complexidade, antes de ser publicado e liberado para os usurios. Conjunto de dados de testes: um conjunto significativo de valores de entrada e sada que passem por todas as condies do algoritmo.

Teste de mesa (chins): A partir de dados de entrada, seguir o algoritmo passo a passo. Desta forma, conseguimos rastrear se o algoritmo apresentar algum erro. Exemplo de chins com o algoritmo de roupa de frio do item desvios, visto anteriormente Identificao do teste Teste01 Teste02 Teste03 Teste04 Teste05 Teste06 Dados de entrada Temperatura = -10 Temperatura = 0 Temperatura = 10 Temperatura = 19 Temperatura = 20 Temperatura = 2139213123 Sada Vestir casaco de pele Vestir casaco de pele Vestir casaco Vestir casaco Vestir qualquer roupa Vestir qualquer roupa

Exerccios (a) Preencha o chins abaixo referente ao algoritmo que valida horas feito no exerccio A do item desvio, visto anteriormente: Identificao do teste Teste01 Teste02 Teste03 Teste04 Teste05 Teste06 Teste07 Teste08 Dados de entrada Hora = 11, Minuto = 19, Segundo = 41 Hora = 25, Minuto = 0, Segundo = 63 Hora = 12, Minuto = 0, Segundo = 0 Hora = 0, Minuto = 0, Segundo = 0 Hora = 24, Minuto = 15, Segundo = 16 Hora = 11, Minuto = 60, Segundo = 58 Hora = 16, Minuto = 16, Segundo = 16 Hora = 15, Minuto = 57, Segundo = 60 Sada

(b) Preencha o chins abaixo referente ao algoritmo que converte a nota para conceito feito no exerccio B do item desvio, visto anteriormente: Identificao do teste Teste01 Teste02 Teste03 Teste04 Teste05 Teste06 Teste07 Teste08 Dados de entrada Nota = 10 Nota = 8 Nota = 5 Nota = 4 Nota = 0 Nota = -23 Nota = 1651654 Nota = 8,9 Sada

Convenes e operaes matemticas Quando escrevemos algoritmos a ideia que qualquer pessoa possa ler e entender o que o algoritmo faz e soluciona. Para alguns casos especficos, e na maioria das vezes, aqueles em que os algoritmos so complexos, so necessrios o uso de operaes matemticas, exibir dados em tela, obter dados inseridos pelo usurio e tambm armazenar valores em algum lugar para uma provvel consulta em algum passo posterior. Portanto para atender a essas necessidades este item ir definir algumas convenes para criao de algoritmos. Declarao de variveis

Variveis representam um espao na memria para que estas possam receber algum valor qualquer. Variveis podem ser dos seguintes tipos: Inteiro Variveis que armazenam nmeros inteiros, positivos ou negativos. Real Variveis que armazenam nmeros com decimais, positivos ou negativos. Caracter Variveis que armazenam textos, smbolos, etc. Exemplos de declaraes de variveis:
Algoritmo Declaracao: Inicio. Caracter: NOME, ENDERECO, MATRICULA. Real: PRECO, SALARIO, Inteiro: CONTADOR, QUANTIDADE. Algoritmo Declaracao: Fim.

Estruturao do cdigo - Para cada passo do algoritmo utilizar ponto final:


Algoritmo PontoFinal: Inicio. Passo1. Passo2. Passo3. Algoritmo PontoFinal: Fim.

- Para cada comando em bloco, como em Desvios ou Repeties, utilizar identao, ou seja, tabular as linhas que esto aninhadas no interior do bloco e tambm inserir o comando de fim:
Algoritmo Identacao: Inicio. Se A > B ento. PassoAB1. PassoAB2. Seno Se C > D ento. PassoCD1. Se E > F. Passo EF1. FimSe. Seno. PassoX. FimSe. Algoritmo Identacao: Fim.

- Para atribuir algum valor a alguma varivel utilizar <- e utilizar // para comentar cdigo:
Algoritmo Atribuir: Inicio. Inteiro: NUMERO. // Significa que estamos declarando uma variavel NUMERO <- 10. // Significa que a varivel est recebendo o valor 10 Algoritmo Atribuir: Fim.

- Sempre que representamos algum contedo que seja um conjunto de caracteres, como um texto, um nmero de matrcula (que apesar de ser um conjunto de nmeros, geralmente so seguidos de letras) entre aspas duplas:
Algoritmo Caracteres: Inicio. Caracter: NOME. NOME <- Maria Carolina. Algoritmo Caracteres: Fim.

Obteno e retorno de dados Quando queremos obter dados que sero inseridos pelo usurio e atribuir a alguma varivel podemos utilizar expresses como receba ou leia. Para exibir dados que sero exibidos no visor do usurio podemos usar expresses como imprima ou escreva. Exemplo de obteno e retorno:
Algoritmo CalcularMedia: Inicio. caracter: NOME. inteiro: NOTA1, NOTA2.

real: MEDIA. // Recebe os leia(Qual leia(Qual leia(Qual dados do usurio seu nome?,NOME). a nota da P1?,NOTA1). a nota da P2?,NOTA2).

// Mensagem de processamento imprima(Bem vindo +NOME+, sua nota est sendo calculada...). // Clculo da mdia MEDIA <- (NOTA1+NOTA2)/2. // Impresso do resultado ao usurio imprima(A mdia atingida foi +MEDIA). Algoritmo CalcularMedia: Fim.

Operaes matemticas Para realizar clculos entre variveis ou nmeros fixos no prprio cdigo, a linguagem j preestabelece alguns operadores matemticos: (+) Soma -> 5 + 4 = 9 (-) Subtrao -> 10 18 = -8 (*) Multiplicao -> 5 * 7 = 35 (/) Diviso -> 10/3 = 3,333... (%) Retorna o resto de uma diviso -> 12 % 5 = 2 Os operadores matemticos podem ser utilizados entre parnteses formando assim uma expresso: MEDIA <- (P1+(2*P2))/3. A expresso acima representa a mdia onde a prova 2 (P2) tem peso 2 e o resultado atribudo varivel MEDIA. Declarao de vetores Imaginando ento uma varivel que precise armazenar o nome de todos os alunos de uma turma, como isso poderia ser feito? ALUNOS <- Francine Heber Fabiano Leonardo Lima Ribeiro Maria Carolina Meneguci Costa Reblin de Lima. Desta forma como poderamos saber quantos alunos possui na sala? Para solucionar este problema utilizamos vetores, que so variveis que podem possuir mais de um valor.
Algoritmo DeclaracaoVetores: Inicio. // Declara um vetor do tipo caracter com espao para 50 registros Tipo ALUNOS = vetor [1..50] de caracteres. // Atribui os alunos nos espaos do vetor ALUNOS[1] <- Francine. ALUNOS[2] <- Heber Fabiano. ALUNOS[3] <- Leonardo Lima Ribeiro. ALUNOS[4] <- Maria Carolina Meneguci Costa Reblin de Lima. // Imprime o aluno que est na terceira posio imprima(Aluno 3:,ALUNO[3]). Algoritmo DeclaracaoVetores: Fim.

Repetio Existem situaes onde um ou mais passos devem ser repetidos, para estes casos utilizado uma estrutura de repetio.

Exemplo de algoritmo para execuo de flexes Representao textual:


Algoritmo Flexoes: Inicio. Inteiro: CONTAGEM. Deite de frente. Coloque as mos no cho. Enquanto CONTAGEM < 50. Erga seu corpo usando as mos. Abaixe seu corpo at o nariz encostar no cho. CONTAGEM <- CONTAGEM + 1. FimEnquanto. Levante-se. Algoritmo Flexoes: Fim.

Representao Grfica:

Estruturao das repeties As repeties podem ser FAA-X-VEZES, ENQUANTO e PARA CADA REGISTRO EM. Exemplos de repeties Algoritmo que imprime todos os nmeros mpares at 100
Algoritmo Impares: Inicio. Inteiro: NUMERO, RESTO. Faa 100 vezes. NUMERO <- NUMERO + 1. RESTO <- NUMERO % 2. Se RESTO = 1. Imprima(NUMERO). FimSe. FimFaa. Algoritmo Impares: Fim.

Algoritmo que obriga usurio escrever data vlida


Algoritmo DataValida: Inicio. Caracter: DATAOK. Inteiro: DIA, MS, ANO. Enquanto DATAOK leia(Informe leia(Informe leia(Informe <> X. o dia:,DIA). o ms:,MS). o ano:,ANO).

// Realiza uma chamada a funo VALIDA_DATA FUNCAO VALIDA_DATA(DATAOK,DIA,MS,ANO).

Se DATAOK <> X. imprime(Data invalida!). Senao. imprime(Data valida!). FimSe. FimEnquanto. Algoritmo DataValida: Fim.

Você também pode gostar