Laboratório 01 Lógica de Programação

Documentos relacionados
Programação WEB I Funções

Estruturas de Repetição

C Pratique resolvendo problemas do seu dia a dia

Sumários de REDES de COMUNICAÇÃO

TUTORIAL MATLAB Victor Breder 2016

Aula 11: Desvios e Laços

números decimais Inicialmente, as frações são apresentadas como partes de um todo. Por exemplo, teremos 2 de um bolo se dividirmos esse bolo

Planilha Eletrônica - Microsoft Excel -

PHP Estruturas de repetição

LINGUAGEM JAVA - RESUMO

Em linguagem matemática, essa proprieade pode ser escrita da seguinte maneira: x. 1 = x Onde x representa um número natural qualquer.

números decimais Inicialmente, as frações são apresentadas como partes de um todo. Por exemplo, teremos 2 de um bolo se dividirmos esse bolo

Exercícios (if/ if else/ if elseif else)

Controle de Fluxo Comandos de repetição: while e do-while

Introdução ao Javascript. Parte 1 Prof. Victor Hugo Lopes

Aula Extra. Depurador Code::Blocks. Monitoria de Introdução à Programação

Microsoft Excel INTRODUÇÃO PARTE 1 SUMÁRIO

FUNDAMENTOS DA MATEMÁTICA

Comandos de Desvio 1

OBSERVAÇÕES: EXERCÍCIOS

Os conceitos aprendidos são fundamentais, essenciais para escrever um programa macro. Mas o que é um programa macro?

MC Teste de Mesa e Comandos Repetitivos

1 Cálculo do valor à vista

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

O que é Microsoft Excel? Microsoft Excel. Inicialização do Excel. Ambiente de trabalho

Programação. Folha Prática 4. Lab. 4. Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved.

Potenciação e radiciação

Compiladores II. Fabio Mascarenhas

Linguagens de Programação:

Introdução à Programação com Python

Introdução à Programação com Python

Algoritmos APRENDENDO A PROGRAMAR COM C#

Orientação a Objetos

INFORMÁTICA BÁSICA. Excel. Professor: Enir da Silva Fonseca

Programação Orientada a Objeto Java

Considere as situações:

Algoritmos e Programação : Conceitos e estruturas básicas. Hudson Victoria Diniz

03. [Sebesta, 2000] Descreva a operação de um gerador de linguagem geral.

Módulo IV Programação Visual Basic. Programação

Sistemas Numéricos. Tiago Alves de Oliveira

Matemática para a Economia I - 1 a lista de exercícios Prof. - Juliana Coelho

Estrutura de repetição para número indefinido de repetições com teste no inicio (Enquanto - while)

Avaliação e Desempenho Aula 1 - Simulação

Calculando seno(x)/x com o interpretador Hall.

Linguagem C. Introdução à Programação C. Variáveis. Identificadores. Identificadores 12/03/2011 VARIÁVEIS E TIPOS DE DADOS

O PENSAMENTO ALGÉBRICO

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

IFRN\CAMPUS IPANGUAÇU DISCIPLINA: INFORMÁTICA BÁSICA PROFESSOR: CLAYTON MACIEL COSTA 2ª AVALIAÇÃO DE INFORMÁTICA BÁSICA TRABALHO FINAL EXCEL 2010

Usando potências de 10

Introdução à Algoritmos. Aula 11

Aula 6 Propagação de erros

Em cada uma dessas frases, há uma quantidade indicada em forma de fração. Veja:

Álge g bra b B ooleana n Bernardo Gonçalves

Exercícios de Fixação Aulas 05 e 06

Capítulo 5: Repetições

Um pouco da História dos Logaritmos

Unidade 10 Análise combinatória. Introdução Princípio Fundamental da contagem Fatorial

Programação de Computadores I Estruturas de Repetição PROFESSORA CINTIA CAETANO

Nº horas ESTRATÉGIAS RECURSOS AVALIAÇÃO

O SOROBAN COMO INSTRUMENTO PARA O DESENVOLVIMENTO DAS OPERAÇÕES MATEMÁTICAS

Algoritmos & Programação

Administração de Redes. Permissões gnu/linux

Roteiro da aula. MA091 Matemática básica. Quadrados perfeitos. Raiz quadrada. Aula 8 Raízes. Francisco A. M. Gomes. Março de 2016

BC-0505 Processamento da Informação

INTRODUÇÃO À CALCULADORA HP 12c. OBJETIVO: Este material tem como objetivo estabelecer um primeiro contato com a calculadora financeira HP 12c.

Prof. Esp. Andrew Rodrigues 1

Conversão Visualg à C++ Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Análise de Algoritmos

Complexidade de Algoritmos

Java possui 4 tipos de dados. Estes tipos de dados são divididos em: boolean, character, integer e float.

Exercícios: comandos de repetição

TECNOLOGIA EM MECATRÔNICA INDUSTRIAL CONTROLADORES LÓGICOS PROGRAMÁVEIS

SÍMBOLOS MATEMÁTICOS. adição Lê-se como "mais" Ex: 2+3 = 5, significa que se somarmos 2 e 3 o resultado é 5.

Universidade Federal da Paraíba Centro de Informática Departamento de Informática

Equipe de Matemática MATEMÁTICA

3º Ano do Ensino Médio. Aula nº09 Prof. Paulo Henrique

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs

4. Álgebra Booleana e Simplificação Lógica. 4. Álgebra Booleana e Simplificação Lógica 1. Operações e Expressões Booleanas. Objetivos.

3. COMPILAÇÃO E ESTRUTURA BÁSICA DE UM PROGRAMA EM C

Estrutura de repetição do/while

Números escritos em notação científica

Introdução. Software Básico Aula 3. Prof. Dr. Rogério Vargas.

Conteúdos: Introdução aos monômios, termos semelhantes e polinômios.

FRAÇÃO. Número de partes pintadas 3 e números de partes em foi dividida a figura 5

Plano 7 - Jogo do Alvo Junho/2015

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

Tutorial 3 Básico do VBA do Excel

Equipe de Matemática MATEMÁTICA

2) Pressione o ícone no canto esquerdo superior da janela do Excel. Você verá a caixa de diálogo a seguir.

VEJA O CONTEÚDO DO ÚLTIMO EDITAL (2011/2012, ORGANIZADO PELA FCC)

CAMPUS DE GUARATINGUETÁ FACULDADE DE ENGENHARIA. Introdução à Programação em C. Algoritmos: Estruturas de Repetição. Prof. Dr. Galeno.J.

Programação de Computadores I. Linguagem C Função

2ª Lista de Exercícios

Somando os termos de uma progressão aritmética

Números inteiros Z ± 7º Ano / 2013

Aritmética Computacional. Prof. Leonardo Barreto Campos 1

ESTRUTURA COM DECISÃO COMPOSTA

Transcrição:

Laboratório 01 Lógica de Programação 1. Introdução Esta aula de laboratório é baseada em [Silveira & Almeida, 2013] 1. A ideia é fazer com que os alunos revejam os conceitos básicos de algoritmos em um ambiente de programação real e que está disponível em qualquer computador com acesso à Internet. As instruções abaixo devem ser passadas para os alunos para que vejam os programas em execução. 2. Executando na máquina local 2.1. Uma página HTML: Abra um editor de texto qualquer; Digite o seguinte código: Meu primeiro teste! <h3>seria isso um programa?</h3> Salve o arquivo com o nome pagina.html; Localize o arquivo recém-salvo com um gerenciador de arquivos e abra-o com um duplo-clique; O que aconteceu? Qual é a resposta para a pergunta incluída na página? 2.2. Um programa JavaScript: Altere seu programa, adicionando as seguintes linhas de código: <script> alert("olá, mundo!"); </script> Volte ao navegador e atualize a página. O que aconteceu? 3. Utilizando um ambiente JavaScript na Web Ainda no navegador, visite o site www.tinkerbin.com; Na parte JavaScript, digite: document.write("olá, mundo!"); Clique no botão Run ou pressione Ctrl+Enter. O que aconteceu? Qual a diferença entre o alert() e o document.write()? 4. Outros programas Ilustrando conceitos de algoritmos Os alunos podem escolher dentre os ambientes acima como eles preferem prosseguir; Modifique o código JavaScript para mostrar diferentes conceitos de algoritmos; 1 Silveira, P; Almeida, A. Lógica de Programação. Casa do Código, 2013.

Antes de escrever o código no quadro para os alunos experimentarem, substitua termos em ITÁLICO_E_CAIXA_ALTA pelos valores que eles representam (dados sobre o professor, aluno ou contexto atual); Os prefixos [NEW] e [ADD] são usados para indicar, respectivamente, se o código anterior deve ser substituído pelo novo ou se o novo código deve ser adicionado ao anterior (atenção: a adição pode ser acima ou abaixo do antigo código ou então modificar partes do mesmo); O prefixo [NOTA] é usado em códigos que contém observações importantes, mas que devem ser feitos no canto do quadro, sem substituir o código atual. 4.1. Diferença entre strings e números: [NEW] Imprimindo dados literais e dados numéricos: document.write("minha idade é: "); document.write(idade); [NEW] Diferença entre os tipos, soma de números, concatenação de strings: document.write(25 + 25); document.write(", "); document.write("25" + "25"); document.write(", "); document.write("25 + 25"); 4.2. Operações matemáticas: [NEW] Uma operação simples de subtração: document.write("eu nasci em: " + (ANO_ATUAL - MINHA_IDADE) + "<br>"); document.write("meu colega nasceu em: " + (ANO_ATUAL - IDADE_DO_MEU_COLEGA) + "<br>"); [ADD] Precedência de operadores o que está errado na expressão? Corrija: document.write("a média das nossas idades é: " + (MINHA_IDADE + IDADE_DO_MEU_COLEGA / 2)); 4.3. Organizando os dados em variáveis: [ADD] Declare variáveis no início e substitua suas ocorrências no código anterior: var ano = ANO_ATUAL; var minhaidade = MINHA_IDADE; var idadecolega = IDADE_DO_MEU_COLEGA; [NOTA] Diferença entre variáveis e strings: document.write(ano); document.write("ano"); [ADD] Fazendo passo a passo as operações: var media = minhaidade = idadecolega; media = media / 2; document.write("a média das nossas idades é: " + media);

4.4. Utilizando funções: [ADD] Uma função para pular a linha. Repare a identação (tab) do conteúdo da função: var pulalinha = function() { document.write("<br>"); document.write("eu nasci em: " + (ano - minhaidade)); document.write("meu colega nasceu em: " + (ano - idadecolega)); document.write("a média das nossas idades é: " + ((minhaidade + idadecolega) / 2)); [ADD] Passando parâmetros para funções: var escreve = function(frase) { document.write(frase + "<br>"); escreve("eu nasci em: " + (ano - minhaidade)); escreve("meu colega nasceu em: " + (ano - idadecolega)); escreve("a média das nossas idades é: " + ((minhaidade + idadecolega) / 2)); [ADD] Função chamando função: 4.5. Comentários var escreve = function(frase) { document.write(frase); [ADD] Documentando as funções e o código: // Esta função escreve uma quebra de linha na página. var pulalinha = function() { // Esta função escreve uma frase, seguida de uma quebra de linha. var mostra = function(frase) { // Início do algoritmo. Calcula a média entre duas idades. 4.6. Mais sobre funções [NEW] Funções podem ser declaradas de uma outra forma mais direta (e mais comum): function pulalinha() { document.write("<br>"); function escreve(frase) { document.write(frase);

[ADD] Um novo exemplo: var peso = MEU_PESO; var altura = MINHA_ALTURA; var imc = peso / (altura * altura); escreve("meu IMC é: " + imc); [ADD] Para fazer o IMC do colega sem repetir o código todo, use uma função: function calculaimc(altura, peso) { var imc = peso / (altura * altura); escreve("imc calculado é: " + imc); escreve("meu IMC é:"); calculaimc(minha_altura, MEU_PESO); escreve("o do colega é:"); calculaimc(altura_colega, PESO_COLEGA); [ADD] Melhor que o escreve() dentro de calculaimc() é usar retorno de função: function calculaimc(altura, peso) { var imc = peso / (altura * altura); return imc; escreve("meu IMC é: " + calculaimc(minha_altura, MEU_PESO)); escreve("o do colega é: " + calculaimc(altura_colega, PESO_COLEGA)); [ADD] Arredondando o resultado: return Math.round(imc); [ADD] Determinando o número de casas decimais: return imc.tofixed(2); 4.7. Entrada de dados [ADD] Alterar o programa para calcular o IMC de cada pessoa é ruim. Use entrada de dados: var altura = prompt("bom dia! Qual é a sua altura?"); var peso = prompt("e o seu peso?"); escreve("seu IMC é: " + calculaimc(altura, peso)); [NEW] Novo exemplo: cálculo de pontos de um time de futebol. Mantenha as funções pulalinha() e escreve(). O que acontece com esse programa? Por que não soma? var time = prompt("bom dia! Para que time de futebol você torce?"); var vitorias = prompt("quantos jogos o " + time + " já ganhou esse ano?");

var empates = prompt("e quantos jogos empatou?"); var pontos = (vitorias * 3) + empates; escreve("o " + time + " tem " + pontos + " pontos."); [ADD] A multiplicação converte vitorias para um tipo numérico (o que aconteceu também no calculaimc() anteriormente), porém o símbolo + é considerado uma concatenação. Isso ocorre porque prompt() retorna uma string. Correção: 4.8. Controle de fluxo var empates = parseint(prompt("e quantos jogos empatou?")); [ADD] Compare o time com um rival: var timerival = prompt("qual é o time rival do " + time + "?"); var vitoriasrival = prompt("quantos jogos o " + timerival + " já ganhou esse ano?"); var empatesrival = parseint(prompt("e quantos jogos empatou?")); var pontosrival = (vitoriasrival * 3) + empatesrival; escreve("o " + timerival + " tem " + pontosrival + " pontos."); if (pontos > pontosrival) { escreve("procure um torcedor do " + timerival + " para tirar onda!"); else { if (pontos == pontosrival) { escreve("pelo menos não estamos atrás do " + timerival + "!"); else { escreve("se encontrar um torcedor do " + timerival + ", disfarça e sai de fininho pra não ser zoado..."); [ADD] Encadeamento else-if: else if (pontos == pontosrival) { [NEW] Escolha com switch-case (sempre mantendo a função escreve()): var mes = prompt("digite o número de um mês do ano (1 = Janeiro, 2 = Fevereiro, etc.)."); mes = parseint(mes); switch (mes) { case 1, 3, 5, 8, 10, 12: escreve("o mês " + mes + " tem 31 dias."); break; case 2: escreve("fevereiro tem 28 ou 29 dias, dependendo do ano.");

break; case 4, 6, 7, 9, 11: escreve("o mês " + mes + " tem 30 dias."); break; default: escreve(mes + " não é um número de mês válido."); [NEW] Números de Fibonacci (Aula 5, Exercício 5) com laço contado: var n = prompt("quantos números de Fibonacci você quer imprimir?"); var ant1 = 1; var ant2 = 0; if (n > 0) document.write("0, "); if (n > 1) document.write("1, "); var i; for (i = 3; i <= n; i++) { var atual = ant1 + ant2; document.write(atual + ", "); ant2 = ant1; ant1 = atual; [NEW] Fatorial com laço condicional (Aula 5, Exercício 7): var fat = 1; var n = prompt("de que número você quer calcular o fatorial?"); var original = n; while (n > 0) { fat = fat * n; n--; // n = n - 1; escreve(original + "! = " + fat); 5. Outros exercícios Os alunos ao final da aula podem tentar resolver outros exercícios em JavaScript. 6. Começando com C Fazer um Hello, World! em C e mostrar o processo de compilação. Detalhes da linguagem na aula seguinte.