Prévia do material em texto
Prof. Dr. Bruno Honda UNIDADE I Programação de Computadores Informática está presente em todos os níveis da sociedade; Sociedade completamente dependente da tecnologia. Pergunta: qual a importância da programação? “Era dos Dados” – era da informação; Inteligência artificial e machine learning; Programação – nova linguagem! Resolução de problemas cotidianos. Introdução Programa é construído por meio de instruções (código): linguagem própria; Ex.: C++, Python, JavaScript, Pascal, Fortran, R, Julia; Computador: linguagem binária (0 e 1); Tradução: compilador (código em executável); Nesta disciplina: português estruturado (PORTUGOL); Linguagem didática; “Lógica de programação”. Programação: introdução Fins didáticos: VisualG (última versão 3.0); Programa para se escrever e visualizar os códigos; Domínio público (gratuito); Mesmos comandos que utilizamos no curso; Vários exemplos gratuitos na internet; Excelente ferramenta para iniciar a programar! Dica – VisualG Fonte: https://sourceforge.net/projects/visualg30/ Exemplo de programa (visualG) Fonte: https://sourceforge.net/projects/visualg30/ Processo sequencial: jamais pular passos! Escrever todos os códigos (evitar copiar e colar). Testar sempre: um programa é construído em etapas, teste todas, sempre! Procurar respostas... Zen of python’ Bonito é melhor que feio. Explícito é melhor que implícito. Simples é melhor que complexo. Complexo é melhor que complicado. Dicas (sugestões) para uma boa programação... Necessidade: Contas muito extensas ou números grandes; Contagem de números muito grandes; Precisão e rapidez nas contas; Ábaco – E.N.I.A.C. – transistor; Atualmente: alto processamento – facilidade de uso (acessível!). Histórico Unidade básica para se construir um programa; Espaço físico real: ex.: trilha magnética; Conceito: caixa com tampa; Etiqueta: identificador. Variáveis Declaração de variáveis: nome, tipo. Regras: nome de variável não pode começar com algarismos e é “case sensitive” (a≠A). Dica: evitar acentos, símbolos matemáticos, símbolos especiais. Variáveis: identificador Como utilizar variáveis? Armazenar informação. Tipos: Número (inteiro, real); ‘string’ (caracteres); Lógica ou booleana: V ou F. Variáveis Tipos: Inteiro (int) – 0; 1; 2; -1; 12000; Real (float) – 0.0; 1.1; 0.3333; 12000.0; Caracteres (‘strings’ – str) – qualquer conjunto de caracteres, incluindo algarismos. “Olá Mundo!” “Aula de Programação de Computadores – mod. 1” “RG 12345678” “1+2” Variáveis Use ponto ‘.’ para separar decimais! Use aspas “ ” para textos Declaração de variáveis PORTUGOL – Comando VAR; Sintaxe: nome_da_variavel:tipo; Tipos: inteiro, real, lógico, caracter; VAR i, j, k:inteiro; num, x, y: real; texto1: caracter; n1, n2: logico; Obs.: como “token” de encerramento Variáveis: atribuição Como atribuir uma informação a uma variável? Comando de atribuição. Exemplos: A:=7; A<-7; A←7; Atenção: geralmente é usado == para ‘igualdade’ e != para ‘diferente’ Variáveis Exemplos: A:=3; A:=A+2; 3 3 +2 = 5 Variáveis: exemplos Problema: desejamos calcular a média aritmética de duas provas, np1 e np2. Quantas variáveis são necessárias? Em princípio, o próprio problema sugere o número de variáveis no enunciado. Prova1, Prova2 e média são as informações relevantes. Logo, precisamos de pelo menos 3 variáveis segundo a lógica adotada. Vamos chamar de np1, np2 media. PORTUGOL: escrever VAR seguido dos nomes e dos tipos de variáveis: VAR np1,np2,media:real; Considere as atribuições abaixo: K:=10 K:=K+2 K:=0 Qual o valor final armazenado na variável K? a) 10. b) 12. c) 0. d) 1. e) Nenhuma das anteriores. Interatividade Considere as atribuições abaixo: K:=10 K:=K+2 K:=0 Qual o valor final armazenado na variável K? a) 10. b) 12. c) 0. d) 1. e) Nenhuma das anteriores. Resposta Linguagens: matemática e computador Como realizar cálculos no computador? Matemática: símbolos Linguagem matemática – linguagem computador Exemplos: frações expoentes raiz quadrada Pergunta: como representar as operações aritméticas? Linguagens: matemática no computador Operadores aritméticos: Exemplos: 3,25+10,75 370-129 3*4 4/5 3^2 Exemplo: 5 x 5 + 5 5*5+5= 5*5+5=25+5=30 Operadores aritméticos Regra: prioridade (hierarquia): 1) exponenciação ^ 2) multiplicação e divisão *, / 3) adição e subtração +, - Quebra de hierarquia: parênteses Matemática: chaves { }, colchetes [ ] e parênteses () Computador: somente () Alterar a hierarquia Exemplo: 5*5+5=25+5=30 5*(5+5)=5*(10)=50 (5*5)+5=25+5=30 Exemplo: 7+7/7+7*7-7=7+1+49-7=50 (7+7)/7+7*7-7=14/7+7*7-7=2+49-7=44 7+7/7+7*(7-7)=7+1+7*0=8 Alterar a hierarquia Para qualquer tipo de raiz: Ou seja, podemos sempre escrever: Porém cuidado com a hierarquia: Porém cuidado com a hierarquia: Operador raiz DIV: quociente inteiro de uma divisão MOD: resto inteiro de uma divisão Exemplos: 5 DIV 2 5 MOD 2 Exemplos de DIV e MOD Funções matemáticas Atenção: geralmente são usadas bibliotecas com as funções. Ex.: math, numpy, sympy etc. Função Sintaxe Cosseno COS (argumento) Seno SEN (argumento) Tangente TAN (argumento) Exponencial de base 𝑒 EXP (argumento) Logaritmo neperiano LN (argumento) Módulo ABS (argumento) Operadores lógicos conectam duas sentenças: V (‘True’) ou F (‘False’) Operadores lógicos Juntar duas sentenças: V ou F Operador E (“AND”) Exemplo: “estamos estudando programação E estamos estudando música” Juntar duas sentenças: V ou F Operador OU (“OR”) Exemplo: “estamos estudando programação OU estamos estudando música” Inverte a sentença: V ou F Operador NÃO (“NOT”) Exemplo: “estamos estudando programação” “estamos estudando música” Variáveis e cálculos Podemos agora utilizar as variáveis em cálculos matemáticos; Area := 3.14*raio^2; x:=w+y+z; b:= (n MOD 2); i:=i+1; Qual o valor numérico da expressão abaixo, considerando que: A:=2; B:=5; C:=1 D:=10 a) 0,91. b) 1. c) 2. d) 5,47. e) 5. Interatividade A*B*C/D+D/B^C/A Qual o valor numérico da expressão abaixo, considerando que: A:=2; B:=5; C:=1 D:=10 a) 0,91. b) 1. c) 2. d) 5,47. e) 5. Resposta A*B*C/D+D/B^C/A 2*5*1/10+10/5^1/2=2 É o passo a passo envolvido na resolução de um problema; É um procedimento definido, com etapas finitas no qual se recebem um ou mais valores (dados de entrada) e gera-se um ou mais valores (informações de saída); Ferramenta: lógica. Algoritmos O algoritmo deve ser uma sequência finita de etapas efetivamente definidas, ou seja, deve ter começo e fim; Pode ser representado por exemplo: Fluxograma (estruturação). Português estruturado (Portugol). Algoritmo Etapas: Nome do programa; Declaração de variáveis; Início; Processamento (entrada e saída); Fim. Como construir um programa? Estrutura de um programa Em fluxograma: Início/fim Entrada de dados Saída de dados Cálculo/processamento Estrutura de um programa Em português estruturado: nome_do_programa VAR inicio <estrutura do programa>; fim. Entrada e saída Programação: Como inserir uma informação no computador? (ENTRADA) Como mostrar (imprimir) na tela uma informação? (SAÍDA) Como inserir uma informação e armazenar (atribuir) essa informação em uma variável? Como imprimir na tela um texto personalizado ou como imprimir na tela uma informação armazenada em uma variável? Comandos: leia() – comando ‘input’ Comando de entrada: leia(); O comando leia é um comando em que se pede ao computador que atribua um valor digitado pelo usuário a uma variável. Note que é um comando de entrada, ou seja, espera-se que o usuário literalmente digite um valor e aperte a tecla “return” (“enter”). Ex.: leia(R);R Leia(R) Comando leia Ex.: Leia(R) Computador espera o usuário digitar um valor e, após o usuário pressionar “enter”, a informação é armazenada na variável R. Comando: escreva() – comando ‘print’ Comando de saída: escreva( ); O comando escreva literalmente imprime um texto na tela do computador. O texto impresso pode ser digitado pelo usuário, e será colocado entre aspas “ ” sempre. O comando escreva também imprime o valor de variáveis, as quais devem ser separadas por vírgula, e não devem aparecer entre aspas. escreva (“saída de dados”) escreva(A) “saída de dados” A Comando: escreva() Ex.: escreva(“Olá mundo!”) Escreva uma informação na tela: texto (“entre aspas”), ou valor armazenado em uma variável (nome da variável). Exemplo de entrada e saída Escreva(“Digite um valor:”); Leia(x); Escreva(“x=”, x); Considere o fluxograma abaixo. Qual o comando a ser utilizado em PORTUGOL para a linha 3? a) Escreva(N); b) Escreva(“N”); c) Leia (N) d) Leia (“N”) e) Nenhuma das anteriores. Interatividade Início “Entre com um número inteiro:” N 3ºN Fim (1) (2) (3) (4) (5) Considere o fluxograma abaixo. Qual o comando a ser utilizado em PORTUGOL para a linha 3? a) Escreva(N); b) Escreva(“N”); c) Leia (N) d) Leia (“N”) e) Nenhuma das anteriores. Resposta Início “Entre com um número inteiro:” N 3ºN Fim (1) (2) (3) (4) (5) Algoritmos: exemplo Vamos montar um programa que, dado um número inteiro, retorne o triplo desse valor. Variáveis: Número (N), triplo (3*N) Triplo:=3*N Exemplo: fluxograma Passo 1: entrar com informação Passo 2: processar a informação Passo 3: mostrar na tela o resultado Início Escreva (“Entre com um número inteiro:”) Leia (N) triplo:=3*N Escreva (triplo) Fim Exemplo: Portugol Triplo_de_um _numero VAR N,triplo:real; Inicio escreva(“Entre com um número inteiro”); leia(N); triplo:=3*N escreva(triplo); Fim Simulação para N=1000 escreva(“Entre com um número inteiro”); leia(N); triplo:=3*N escreva(triplo); Exemplo: Portugol Triplo_de_um _numero VAR N,triplo:real; Inicio escreva(“Entre com um número inteiro”); leia(N); triplo:=3*N escreva(“O triplo do número é:”, triplo); Fim Simulação para N=200 escreva(“Entre com um número inteiro”); leia(N); triplo:=3*N escreva(“O triplo do produto é:”, triplo); Algoritmos: exemplos Dados dois números reais, escreva um programa em Português Estruturado e um fluxograma que realize a soma desses dois números. Variáveis: Primeiro número (N1), segundo número (N2), soma; soma:=N1+N2; Fluxograma Início Escreva (“Entre com dois número reais.”) Leia (N1,N2) soma:=N1+N2 Escreva (“A soma é”, soma) Fim Português estruturado media_de_dois_numeros VAR N1,N2,soma:real; Inicio escreva(“Digite dois números reais:”); leia(N1,N2); soma:=N1+N2; escreva(“A soma é:”, soma); Fim Simulação para N1=1 e N2=2 escreva(“Digite dois números reais:”); leia(N1,N2); soma:=N1+N2; escreva(“A soma é:”, soma); Considere o programa a seguir. Qual a saída do programa se o usuário digitar os números 4 e 5? a) 4. b) 5. c) C. d) 17. e) 27. Interatividade Considere o programa a seguir. Qual a saída do programa se o usuário digitar os números 4 e 5? a) 4. b) 5. c) C. d) 17. e) 27. Resposta ATÉ A PRÓXIMA!