520 likes | 650 Views
Programação de computadores. Algoritmos e programação. Programação. Conceito: Conjunto de métodos , técnicas e procedimentos para elaboração de um SW. Pessoas Usuário: usa o SW como ferramenta de trabalho
E N D
Programação de computadores Algoritmos e programação
Programação • Conceito: Conjunto de métodos, técnicas e procedimentos para elaboração de um SW. • Pessoas • Usuário: usa o SW como ferramenta de trabalho • Programador: define e codifica comandos a serem realizados em SW, utilizando-se uma linguagem de programação
Programação • Primórdios: • Desenvolvimento era uma arte (artesanal) • Exigia conhecimentos profundos de HW, muito criatividade e raciocínio lógico • Não existiam métodos formais • Atualmente: • Ainda exige criatividade e raciocínio lógico • SWsdevem fáceis de serem entendidos por outros programadores, • Devem ter poucos erros e possuir bom desempenho • Uso da programação estruturada
Algoritmos x problemas Problema: Qualquer questão levantada para se chegar a uma decisão/solução. Solução: É necessário conhecer, entender os domínios do problema Algoritmo: É uma sequênciaordenada e finita de etapas, cuja execução resolve um determinado problema.
Algoritmos x problemas Problema Algoritmo Solução • Exemplos de problemas: • Realizar saque em um caixa automático • Beber água • Comandos com sequência, desvio, repetição • Algoritmos podem ser reutilizados: • Outras pessoas, máquinas, ocasiões, linguagens
Exercício • Escreva um algoritmo para: • Ir de casa até a faculdade • Preparar café na cafeteira elétrica • Procurar o significado de uma palavra no dicionário
Estruturar algoritmos • A codificação é a fase da programação em que transcrevemos um algoritmo para uma linguagem de programação. • É a etapa mais fácil. • O difícil é saber o quê programar: • O que é o problema? • Como modelar uma solução? • Qual seu algoritmo?
Nossos algoritmos • Características: • Conversão fácil: notação próxima às ling. de programação • Objetividade: evitar ambiguidades, maior precisão • Fácil entendimento: entendido por pessoas , ao invés de máquinas. • Foco no problema: não é específica para uma ling. de programação.
Computadores X programas Sequência de comandos e dados Memória principal(RAM) CPU Busca sequencial de comandos Saída Programa Monitor, impressora, modem, placa de som Memória secundária Dispositivo de entrada Sistema Operacional
Português estruturado • É uma pseudolinguagem (pseudocódigo) que representa em alto nível algoritmos. • Existem outras formas • Também conhecido como portugol • Características: • Conj. limitado de comandos • Constrói algoritmos simples e complexos • Interpretação única • Permite criar uma lista ordenada de comandos
Português estruturado • Léxico: escrita correta de uma palavra • Hematoma ou ematoma ? • Sintaxe: sequência de regras a serem seguidas • Frase deve ser composta de sujeito, depois verbo e por último predicado. • Exemplo: Vou beber água. • Semântico: Rege o sentido de uma frase • Exemplo: Vou beber água benta.
Português estruturado • Tipos de dados • Inteiros: -100, 0, 300 • Real: (fracionários)-3.1415, 0.99, +11.1 • Lógico: verdadeiro ou falso • Caractere: “a”, “!”, “@”, “9” • Cadeia de caracteres (String): ‘undb’, ‘(98) 8181-8888’ • Identifique os tipos dos dados a seguir: • Salário, nº de dedos, peso, saldo, aprovação no vestibular, cep, logradouro, placa, PI, arroba
Português estruturado • Operadores aritméticos: binários • Soma: + • Subtração: - • Multiplicação: * • Divisão real: / • Quociente da divisão inteira: # • Resto da divisão inteira: % • Potência: ^ • Operadores aritméticos: unário • Oposto: - • Positivo: +
Português estruturado • 2+3 • 3.2*9 • 8 * • 2-9 • 11#3 • 11%3 • 7.4 #2 • 7.4%2 • 7.4/2 • %3 • -(2^10) • -(4+10)*3.0 • (8/0)+1 • Classifique as operações em corretas ou erradas, e dê o resultado
Português estruturado • Igual a: = • Maior que: > • Maior que: < • Maior ou igual a: >= • Menor ou igual a: <= • Diferente: <> • Operadores relacionais: relação entre dois elementos. • Resultam em valor lógico.
Português estruturado • 3>4 • 10>=9 • -1>-2 • 7.3 <> 7.2 • <10 • Dê o resultado das seguintes expressões relacionais
Português estruturado • Operador NÃO (negação) • Operador E (conjunção) • Operador OU (disjunção) • Operador XOU (disjunção exclusiva) • Operadores lógicos: estendem o uso dos operadores relacionais.
Português estruturado • 3>4 ou 10>=9 • (-1>-2) e (7.3 <> 7.2) • Não (10 < 10) • (5<=(10/2)) xou (não(não (falso))) • Dê o resultado das seguintes expressões relacionais
Português estruturado • Funções: • São subprogramas • Geram valores de saída (resultado) • Devem ser criados preferencialmente quando trechos de código se repetem pelo programa • Organizam os programas • Dividir para conquistar • Facilita: • Entendimento • Detecção de erros • Manutenção
Português estruturado • Funções: sintaxe (uso) • <nomeFunção> (<p1>, <p2>, ..., <pn>) • p = parâmetro, variável ou valor de qualquer tipo • <> indicam onde os valores devem ser escritos • Exemplos: • raiz(x) • abs(x) • arred(x) • trunc(x) • quad(x)
Português estruturado • Prioridades
Português estruturado • Prioridade: Exemplos • 3+4*9 • (3+4)*9 • 8–quad(4)+5 • 10>9 e 5+4>14 • 2+3-5*8 • Raiz(quad(abs(-9)+1)) • Não(3+5 <> 5 /2 -1)
Português estruturado • Conversão de fórmulas: uso apenas de parênteses Exemplo 1: (matemáticaportugol) ((a+b)/c)*d Exemplo 2: (matemáticaportugol) (-b+raiz(b*b-4*a*c))/(2*a) ou (-b-raiz(b*b-4*a*c))/(2*a)
Português estruturado • Variáveis: é um identificador de endereço • ENTRADA PROCESSAMENTO SAÍDA • Dados devem ser armazenados na memória (endereço) • Uso: através de um nome específico, ou endereço • Pode ocupar quantidades de memória diferentes, dependendo do tipo do dado • São eliminadas com o fim do programa • Uma variável contém um valor por vez • Sintaxe • Nome único dentro do trecho (bloco) de código • Deve ser iniciada com letra, depois “_”, ou números • Não deve conter acentos, nem usar nomes de comandos
Português estruturado • Variáveis: Sintaxe correta Sintaxe errada Valor_pagosoma Media2 Idade nomeDopaciente médiavalor pago 2nota Valor_em_U$ Nome-do-aluno
Português estruturado • Variáveis: declaração (criação) • Devem ser criadas no início do bloco de código • Possuem um tipo específico • Sintaxe: • Declaração única: • <variável> : tipo; • Declaração múltipla: • <v1>, <v2>, ..., <vn> : tipo; • Exemplos: • Quant_latas, quant_pessoas : inteiro; • Salario, multa, juros : real; • Opcao : caractere; • nome, endereco, cep, cidade, estado: cadeia;
Português estruturado • Programa: sintaxe Tipos <novoTipo> = <TipoBase>; ... Variaveis <v1>, <v2>, ..., <vn> : <TipoBase>; ... Início comando1; ... comandoN; Fim. (continua no próximo slide)
Português estruturado • Programa: sintaxe (continuação) Modulo <nomeModulo>; [[ comando1; ... comandoN; ]]; ... • Comentários: • É qualquer informação após a barra dupla “//” • Qualquer trecho de código pode conter um comentário. • Não é considerado código • Identação: facilita a organização
Português estruturado • Comando de atribuição: <- Sintaxe: <nomeDaVariável> <- <expressão>; • Modifica o valor de uma variável. • Expressão: constantes, operações aritméticas, lógica ou relacionais; • O resultada da expressão deve ser compatível com o tipo da variável; • <- pode ser interpretado como “recebe”.
Português estruturado • Comando de atribuição: exemplo • Teste <-falso; • idade <- idade+1; • SalarioLiquido <- salarioBruto – impostos; • status <- ‘ocupado’
Português estruturado • Comando de entrada: ler • Permite a comunicação entre o usuário e a máquina. • Os valores informados serão armazenados nas respectivas variáveis. • Sintaxe: ler <var1>, <var2>, ... ; • Exemplo: ler nome; ler nome, idade, peso, altura;
Português estruturado • Comando de saída: escrever • Permite a comunicação entre a máquina e o usuário. • A saída será o monitor (por padrão). • Sintaxe: escrever <var ou expr ou valor>, <var ou expr ou valor>, ... ; • Exemplo: escrever ‘Meu nome é ’, nome; escrever a+b;
Português estruturado • Exemplo de programa: Variáveis n1,n2,soma:inteiro; Início ler n1; ler n2; soma<-n1+n2; escrever soma; Fim. • Exemplo de programa: Variáveis n1,n2,soma:inteiro; Início ler n1; soma<-n1+n2; ler n2; escrever soma; Fim.
Português estruturado • Exercícios páginas 37 e 38
Português estruturado • Módulos: • Permitem dividir um programa em sub-programas; • Facilita: entendimento, manutenção, correção. • Sintaxe: Módulo <nome>; [[<comando1>; . . . <comandoN>]];
Português estruturado • Ex.: Calcular gastos com azuleijo Variáveis gasto, area, comprimento, altura, largura, total_azuleijos: real; Início lerDimensoes; Calcular_custo; Escrever_custo Fim.
Português estruturado • Ex.: Calcular gastos com azuleijo Módulo LerDimensoes; [[ escrever ‘Comprimento: ’; ler comprimento; escrever ‘altura”; ler altura; ]] Exercício: fazer demais módulos
Português estruturado • Exercícios: 57 a 60.
Português estruturado • Decisões • Algumas vezes não queremos usar todos os comandos; • Decidir quais comandos executar • São baseadas em testes lógicos • Se • Sintaxe: • se <exp_lógica> então <comando_verdade>; • se <exp_lógica> então <comando_verdade> senão <comando_falsidade>;
Português estruturado • Se • Melhor organização: se <exp_lógica> então <comando_verdade>; se <exp_lógica> então <comando_verdade> senão <comando_falsidade>;
Português estruturado • Exercícios: • 1. Ler idade e informar se maior de idade. • 2. Ler idade e informar se maior de idade ou menor de idade. • 3. Informar se um número é par ou ímpar.
Português estruturado • Teste encadeados (aninhados): • Usado na existência de mais possibilidades. • Substitui-se <comandoX> por outro “se”. • Ex.: se <exp_lógica> então se <exp_lógica> então <comando_verdade> senão <comando_falsidade>; senão <comando_falsidade>; • Exercícios. • Calcular a situação de um aluno dadas as 3 avaliações semestrais. • Identificar o caçula entre 3 irmãos de idades distintas.
Português estruturado • Exercícios: • Páginas 75 a 77.
Português estruturado • Caso • Testa uma variável com diversos valores possíveis. • Executa comandos diferentes pra valores diferentes. • Sintaxe: Caso < variável ou expressão> seja <valorA>: <comandoA>; <valorB>: <comandoB>; . . . <valorN>: <comandoN>; Senão <comando_Falso>; Fimcaso;
Português estruturado • Caso • Exercício: Um sócio de um clube tem o pagamento de sua anuidade de acordo com o dígito final de sua matrícula. • Final 0 pagamento em janeiro • Final 1 pagamento em fevereiro • Final 2 pagamento em março • Final 3 pagamento em abril • Qualquer outro pagamento em maio
Português estruturado • Caso: Solução 1 (se) Variáveis num_matricula, final : inteiro; Início ler num_matricula; final <-num_matricula % 10; se final = 0 então escrever ‘Pagamento em janeiro.’ senão se final = 1 então escrever ‘Pagamento em fevereiro.’ senão se final = 2 então escrever ‘Pagamento em março.’
Português estruturado • Caso: Solução 1 (se) se final = 2 então escrever ‘Pagamento em março.’ Senão se final = 3 então escrever ‘Pagamento de abril.’ senão Escrever ‘Pagamento de maio.’; Fim.
Português estruturado • Caso: Solução 2 (caso) Variáveis num_matricula, final : inteiro; Início ler num_matricula; final <-num_matricula % 10; caso final seja 0: escrever ‘Pagamento em janeiro’; 1: escrever ‘Pagamento em fevereiro’; 2: escrever ‘Pagamento em março’; 3: escrever ‘Pagamento em abril’; senão Escrever ‘Pagamento em maio’; Fimcaso; Fim.
Português estruturado • Exercícios páginas 86 a 91.