Lógica de Programação

Documentos relacionados
Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.

Estrutura do programa

Exercícios Repetição

Português Estruturado (VISUALG)

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

A resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta?

Programação Orientada a Objetos

Linguagem de Programação Java Terceira aula. Prof. Rogério Albuquerque de Almeida

Lógica de Programação

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

CURSO BÁSICO DE PROGRAMAÇÃO AULA 3. Revisão Estrutura de Decisão Se Então

CURSO BÁSICO DE PROGRAMAÇÃO AULA 3. Revisão Estrutura de Decisão Se Então

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA. DIM0320 Algoritmos e Programação de Computadores

Mini apostila de Python - Oficina de Vestibulandos. PET Computação - UFPR September 2016

- Aula 29, 30, 31 e 32 - Técnicas de programação.

Linguagem C. Programação Estruturada. Estruturas de Controle. Prof. Luis Nícolas de Amorim Trigo

Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO

Linguagem de programação: Pascal

Introdução a Programação. Curso: Sistemas de Informação Programação I José R. Merlin

AULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa

JavaScript (Elementos de Programação e Programação Básica)

Introdução a Computação

Professor Jefferson Chaves Jefferson de Oliveira Chaves - IFC Araquari

Sintaxe Básica de Java Parte 2

Revisão C++ - Parte 1

Linguagem C Operadores

LP II Estrutura de Dados

Linguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;

Módulo 5. Instruções if e switch. Algoritmos e Estruturas de Dados I C++ (Rone Ilídio)

Algoritmo e Linguagem C++

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

Linguagem C++ Estruturas de controle Parte II Estruturas de repetição

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

Gustavo G. Parma. Objetivos: O aluno deverá ser capaz de compreender os conceitos básicos de VHDL.

Noções de algoritmos - Aula 1

C A P I T U L O 2 S I N T A X E B Á S I C A - V A R I Á V E I S E C O N S T A N T E S E M P H P

Algoritmo e Programação Matemática

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

CADERNO DE EXERCÍCIOS ALGORITMOS

TÉCNICO DE INFORMÁTICA - SISTEMAS

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string

CURSO BÁSICO DE PROGRAMAÇÃO AULA 2. Revisão Variáveis Estrutura de um algoritmo Estruturação de operações Ferramenta Portugol Studio

Disciplina: Algoritmos e Programação Professor: Paulo César Fernandes de Oliveira, BSc, PhD

Linguagem C Operadora

Expressões, Atribuições, Entrada e Saída. Givanaldo Rocha

Introdução Operadores Relacionais Lógicos Comando If Comando If...else Comando swich()...case...break Operador condicional ternário

Aula 03 Estruturas Condicionais. Prof. Filipe Wall Mutz

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

69) Acrescentar uma mensagem de VALOR INVÁLIDO no exercício [68], caso o segundo valor informado seja ZERO.

Algoritmos: Conceitos Fundamentais. Slides de autoria de Rosely Sanches e Simone Senger de Souza

Disciplina Programação Prof. Esp. Armando Hage. Programação em Turbo Pascal

Estruturas de controle: Estrutura de DECISÃO

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

Lógica de Programação. Lógica de Programação com Java

Parte I - Expressões lógicas e operadores

ALGORITMOS VARIÁVEIS E OPERADORES. Prof. Angelo Augusto Frozza, M.Sc.

Material Didático Proposto

Programação Estruturada Comandos Condicionais (Decisão) Operadores Relacionais

DESENVOLVIMENTO DE SOFTWARE

INFORMÁTICA APLICADA AULA 03 LINGUAGEM DE PROGRAMAÇÃO C++

Estruturas de Decisão

SITUAÇÃO VETORES. Imagine o seguinte problema:

Estrutura de Seleção Múltipla Switch

Variáveis primitivas e Controle de fluxo

Programação de Computadores I Funções de Repetição da Linguagem C PROFESSORA CINTIA CAETANO

Introdução à Programação. 4ª aula. Prof. José Honorato F. Nunes

Working 03 : Conceitos Básicos II

Linguagens de Programação

Um algoritmo deve conter passos não ambíguos, executáveis e que sejam terminados quando seguidos.

Aula 9: Shell Script

7 Operadores e Expressões

Linguagem C (estruturas condicionais)

Aula de hoje. Expressões. Expressões. Expressões. Exemplos. Programa em Python. SCC Introdução à Programação para Engenharias

Introdução à Programação em Java Constantes, expressões e variáveis

01/08/2011. Tipos de dados Numéricos Alfanuméricos Lógicos. Numéricos. Tipos de dados. Dados Numéricos Inteiros. Dados Numéricos Reais.

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Estruturas de repetição. Prof. Alex Camargo

Lógica de Programação I

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

Comandos de desvio de fluxo. Expressões lógicas.

Linguagem de Programação Pascal - Introdução

LO GICA E TE CNICA DE PROGRAMAC ÃO. TÁSSIO JOSÉ GONÇALVES GOMES

Desenvolvimento de Sistemas para WEB Site:

INFORMÁTICA APLICADA AULA 05 LINGUAGEM DE PROGRAMAÇÃO C++

Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo

Programação em C. Victor Amorim dos Santos

Transcrição:

Lógica de Programação Aula 2 Conhecendo o Ruby Clenisson Calaça <clenisson.calaca@gmail.com>

Variáveis Mais Ruby Já sabemos como atribuir um valor a uma variável escrevendo o seu identificador seguido de = (igual a) e o seu valor Tipos curso = Lógica de programação Local = Conhecimento Digital duracao_em_horas = 45 String cadeia de caracters. Ex.: um texto qualquer Fixnum números inteiros. Ex.: 10 Float números fracionados. Ex.: 2.5...

Tipos de variáveis Como saber o tipo da minha variável?.class =>Experimente: Tipagem curso = Logica de programacao puts curso.class O Ruby infere o tipo da sua variável de acordo com o valor que você atribui a ela! Em muitas linguagens, você precisa informar previamente qual tipo a variável aceita. O tipo da variável pode mudar N vezes ao longo da execução do mesmo progama idade = 27 (Fixnum) idade = 27 (String)

Tipos de variáveis Tipagem forte e dinâmica! Forte: o Ruby Os tipos são importantes numero1 = 1 numero2 = 2 soma = numero1 + numero2 # retornará a concatenação de strings 12 Dinâmica Uma mesma variável pode assumir vários tipos durante a execução. Numero = 23 # string numero = 23 # fixnum

Expressões aritméticas É possível realizar outras operações além da soma... Multiplicação: * puts 2*6 Subtração: - puts 10-5 MAIS EM: https://wmagician.wordpress.com/2008/01/27/ruby -numeros-e-math-basico/ Divisão: / puts 12 / 2 Agrupando expressões: puts (6*2 + 10/2) * (9*5 + 100/10)

Exercícios Variáveis e operações aritméticas 1 Crie um programa que receba o valor de b, a e c e imprima o valor de DELTA (da fórmula de Bháskara): b² 4.a.c 2 Crie um programa que receba o número do mês atual e calcule quantos meses faltam para o ano terminar, informando ao usuário. Ex.: Entrada (teclado): 1 Saída: Meses para o fim do ano: 11

Relações São comparações entre valores do mesmo tipo. Possuem operadores e operandos: == (igual à)!= (diferente de) > (maior que) < (menor que) >= (maior ou igual à) <= (menor ou igal à) Ruby retornará o resultado da comparação: true (verdadeira) ou false (falsa) 2 == 2 ( dois é igual à dois ) true 5 > 7 ( cinco é maior que sete ) false

Expressões lógicas / booleanas São expressões (conjunto de comparações) que ao serem submetidas a operadores lógicos retornam um valor: true (verdadeira) false (falsa) Operadores lógicos no ruby && e and significam e (conjunção) 2 > 1 && 10 == 10 (dois é maior que um E 10 é igual à 10) verdadeiro e or significam ou (disjunção) 2 < 1 10 == 10 (dois é menor que um OU 10 é igual à 10) verdadeiro! significa não (negação)!(2 < 1) (dois não é menor que um) verdadeiro

Estruturas de seleção Consiste em estruturas que testam uma determinada condição para executar uma ação (ou um conjunto de ações). Exemplo: ALGORITMO do se Em Ruby: SE o número é divisível por 2, é par. SE NÃO, é ímpar. If, elsif, else ( se, senão se, senão ) unless ( a menos que ) case ( quando for igual a )

Estruturas de seleção if, elsif, else SE (if). Testa se uma expressão lógica é verdadeira. SE idade for maior que ou igual a 18 => if idade >= 18 SENÃO SE (elsif). Testa se outra expressão lógica é verdadeira, caso a anterior não seja SENÃO SE idade for menor que 18 e maior ou igual a 14 => elsif idade < 18 && idade >= 14 (Neste ponto, já foi identificado que x > 5 é false) SENÃO (else). Caso nenhuma das condições anteriores seja satisfeita (ou seja, nenhuma retorne true, nenhuma seja verdadeira...) SENÃO => else end (encerra a estrutura)

Estruturas de seleção if, elsif, else puts "FESTINHA!!! Para ter acesso, digite sua idade:" idade = gets.to_i if idade >=18 puts "LIBERADO" elsif idade < 18 && idade >= 14 puts "LIBERADO COM OS PAIS" else puts "BARRADO" end

Estruturas de seleção if, elsif, else Alternativamente.. puts "FESTINHA!!! Para ter acesso, digite sua idade:" idade = gets.to_i puts "LIBERADO" if idade >=18 puts "LIBERADO COM OS PAIS" if idade < 18 && idade >= 14 puts "BARRADO" if idade < 14

Estruturas de seleção unless UNLESS ( a menos que ). Testa se uma expressão lógica é verdadeira e, se ela não for, executa as instruções dentro do bloco. A MENOS QUE seja Alemanha, o Brasil ganha. SENÃO, o Brasil toma 7x1! puts "Brasil joga com quem?" adversario = gets.chomp unless adversario == "Alemanha" puts "Brasil ganha!" else puts "Brasil toma 7x1" end puts "Brasil joga com quem?" adversario = gets.chomp puts "Brasil ganha!" unless adversario == "Alemanha"

Estruturas de seleção case Testa várias condições em uma mesma estrutura Sintaxe: case expressao when valor1... when valor2... when valor3... else... end

Estruturas de seleção case puts "Capitais do Nordeste. Digite a sigla do estado:" estado = gets.chomp case estado when "AL" puts "Maceio" when "PE" puts "Recife" when "SE" puts "Aracaju" when "BA" puts "Salvador" else puts "Você nao digitou uma sigla de um estado do Nordeste, ou nós não temos esse estado cadastrado ainda!" end

Exercícios Estruturas de seleção 1 Idosos com 60 anos ou mais possuem gratuidade ao andar de ônibus. Crie um programa que receba (no teclado) a idade do usuário e diga se o mesmo possui ou não direito à gratuidade. 2 Crie um programa que receba a sigla e imprima a capital dos estados do Sul do Brasil. Se o estado não for do sul, deve exibir uma mensagem informando ao usuário. Para referência: RS Porto Alegre; SC Florianópolis; PR Curitiba.

Estruturas de repetição Consiste em estruturas que obedecem uma determinada condição para executar uma mesma instrução N vezes, até que uma condição de parada seja satisfeita (verdadeira / true) do contrário, teremos um loop infinito: o código da estrutura será executado eternamente até ser interrompido de alguma maneira brusca. Exemplo: ALGORITMO do enquanto Em Ruby: ENQUANTO a senha estiver incorreta, solicite que seja digitada. while ( enquanto ) until ( a menos que ) for ( para )

Estruturas de repetição while ENQUANTO (while). Executa a instrução contida no bloco enquanto a expressão lógica for verdadeira. ENQUANTO senha for diferente de 123456 => while senha!= 123456 end (encerra a estrutura) O restante do algoritmo será executado somente após a execução da estrutura. puts "Digite a senha:" senha = gets.chomp while senha!= "123456" puts "Senha incorreta. Digite a senha:" senha = gets.chomp end puts "Parabéns, você sabe a senha!!!!"

Estruturas de repetição while #dica: O mesmo programa anterior pode ser reescrito com menos repetições... puts Digite a senha: senha = gets.chomp utilizando blocos begin e end begin puts "Digite a senha:" senha = gets.chomp end while senha!= "123456" puts "Parabéns, você sabe a senha!!!!"

Estruturas de repetição until ATÉ QUE (until). Executa a instrução contida no bloco enquanto a expressão lógica for falsa. ATÉ QUE senha seja igual à 123456 => until senha == 123456 Comportamento semelhante ao unless nas estruturas de seleção... puts "Digite a senha:" senha = gets.chomp until senha == "123456" puts "Senha incorreta. Digite a senha:" senha = gets.chomp end puts "Parabéns, você sabe a senha!!!!"

Estruturas de repetição until Utilizando blocos: begin puts "Digite a senha:" senha = gets.chomp end until senha == "123456" puts "Parabéns, você sabe a senha!!!!"

Estruturas de repetição for PARA (for). Executa a instrução contida no bloco para um determinado intervalo/grupo de valores. PARA todo numero de 1 à 5 => for numero in 1..5 end (encerra a estrutura) for numero in 1..5 if numero % 2 == 0 puts "#{numero} é par!" else puts "#{numero} é ímpar!" end end

Exercícios Estruturas de repetição 1 Utilizando while ou until, crie um programa cuja execução só se encerre quando for digitado um número par e maior que 100 2 Utilizando o for, crie um programa que exiba a tabuada de um número digitado pelo usuário Entrada (teclado): 10 Saída: 10x0 = 0 10x1 = 10 10x2 = 20...