Working 03 : Conceitos Básicos II

Documentos relacionados
Working 03 : Conceitos Básicos II

Working 04 : Conceitos Básicos III

Olimpíada Brasileira de Informática OBI2008 Programação Nível Júnior Fase 2 1. Auto Estrada. Nome do arquivo fonte: auto.c, auto.cpp ou auto.

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Algoritmos e Programação

Exercícios Repetição

Estrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas

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

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

Aula 05: Condicionais (if / else)

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Material Didático Unificado.

Comandos em C (cont.)

Aula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU

Agenda. Programação estruturada. Sequência. Decisão: Desvio de fluxo INTRODUÇÃO. Expressões lógicas.

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

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For

Seleção Múltipla Laços (while, do-while, for) AULA 05

Programação II. Aula 3

BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35

08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos:

Programação Computacional C/C++

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701

Algoritmo e Programação Matemática

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

CIT Aula 02 Variáveis e Estruturas de desvio condicional. Autor: Max Rodrigues Marques Carga Horária: 2 h 22/07/15 1

3. Linguagem de Programação C

Linguagem C. Prof.ª Márcia Jani Cícero

Material Didático Unificado. Variáveis correspondem a nomes para endereços de memória que são gerenciados pelo Scilab.

Introdução à Linguagem C

Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Exercício... Para começar... Resolução... Para começar... Para começar...

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Working 05 : Modularização

Programação Orientada a Objetos

Algoritmos e Programação

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

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

Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação. Lista de Exercícios 1

Módulo 9 VARIÁVEIS, TIPOS DE DADOS, OPERADORES, ESTRUTURAS DE CONTROLO P S I C P T G P S I

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Conceitos Básicos Linguagem C

Introdução à Programação. Expressões Booleanas e Comandos Condicionais

Estruturas de Controle de Fluxo Estruturas de Seleção. Givanaldo Rocha

Material Didático Proposto

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

Introdução à Ciência da Computação

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

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

I1, I2 e In são instruções simples ou estruturadas da linguagem Pascal.

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

Sintaxe Básica de Java Parte 2

Estrutura do programa

Aula 16 Estruturas de Controle. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Informática Fundamentos em C++ Revisão 1

SSC Introdução à Programação para Engenharias. Lista 01 Entrega em 06/04/ h10

Introdução ao Scilab. Comandos de entrada e saída de dados.

Programação científica C++

Programação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida

AEDI Fundamentos Revisão 1

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini

Programação: Vetores

CONCEITOS DE ALGORITMOS

Estruturas Condicionais

Transcrição:

Universidade Federal do Espirito Santo Centro Tecnologico Working 03 : Conceitos Básicos II Objetivos: Dominar a construção de estruturas de seleção em C; Aperfeiçoarse na resolução de problemas, da primeira ideia ao programa pronto; Prazo de Envio: sexta, 26/08, 23:55. PET Engenharia de Computação

1 INTRODUÇÃO Até agora você programou utilizando variáveis, identificadores, expressões aritméticas, relacionais e lógicas, comandos de entrada e saída de dados. Mas estes são comandos básicos necessários para dominar C. O que é determinante para a programação de computadores e a geração de programas, sistemas complexos e inteligentes são os controles de fluxo! Na aula passada, aprendemos sobre um destes: as estruturas condicionais. Aprender a utilizálas da melhor maneira e saber o melhor formato de implementá-las de maneira eficiente pode ser o primeiro passo para projetar tecnologias rápidas e sofisticadas. 2 A ESTRUTURA DE SELEÇÃO IF Em C, a estrutura de seleção simples obedece à seguinte regra de sintaxe: 1 { 3 Se, a expressão lógica for verdadeira, o computador executará a sequência de comandos de dentro do if. Porém, há também a estrutura de seleção dupla que utilizamos quando precisamos implementar o caso contrário, ou seja, os comandos dos quais o computador irá executar no caso da expressão lógica ser falsa. Ela obedece à seguinte sintaxe: 2 { 4 e l s e 6 { 8 Há uma questão importantíssima para a implementação do caso contrário, que é o entendimento de qual seria o caso contrário presente numa expressão lógica. Por exemplo, qual seria o caso contrário da expressão a>3 a<5? Vamos pensar, se a=4, a expressão é verdadeira. Se a <= 3 ou a >= 5, a expressão é falsa. Portanto, o caso para que a expressão seja verdadeira é de que a esteja entre os números 3 e 5. Já o caso contrário disso, é que a esteja acima ou igual a 5 ou ( ) abaixo ou igual a 3. Por isso, sempre verifique se a estrutura condicional que deseja economizar é válida para o caso contrário. Caso contrário (rsrs), não a economize. PET - Engenharia de Computação 2

3 DETALHES PARA PRODUTIVIDADE Há alguns detalhes em C que aumentam a produtividade do programador. Por exemplo, se só há um comando num if ou else, basta fazer o seguinte: 2 <comando> e l s e 4 <comando> Mas atente-se ao fato de que um comando termina com um ;. Outro detalhe que aumenta a produtividade é quando só há uma estrutura de if dentro do caso contrário. Exemplo: 2 { 4 e l s e 6 { 8 { 10 Observação: Apesar de parecer mais simples utilizar if/else de uma linha só caso se tenha somente um comando em seu escopo, recomendamos fortemente que para fim de aprendizado se use e. Isso evita erros bobos e fortifica ainda mais o entendimento de escopo em estruturas. 4 OUTRAS ESTRUTURAS DE SELEÇÃO Além do if, existe o switch. Sua sintaxe é a seguinte: 1 switch ( e x p r e s s a o ) { 3 c a s e <valor1 >: 5 break ; c a s e <valor2 >: 7 break ; 9.. 11. 13 c a s e <valorn> 15 break ; d e f a u l t : 17 PET - Engenharia de Computação 3

Agora vamos explicar como ela funciona. Primeiramente, você deve especificar uma expressão no cabeçalho, entre parênteses. Em seguida, o resultado dessa expressão é comparada com os valores especificados no case. Quando o valor da expressão for o mesmo que o valor determinado no case, o programa entrará nesse case e executará a sequência de comandos implementadas nele. Em seguida, é executado o comando break, pulando todo o resto da estrutura switch e executando o resto do programa. O comando break possui esta função, quando ele é executado, o programa em execução sai da estrutura (seleção ou repetição) em que ele se encontra e continua a execução normal do programa. Com isso, você especifica os case e, assim, o valor da expressão será comparada com o valor dos case até que um ou nenhum coincidir. Quando nenhum coincidir, o programa executará os comandos determinados no default. Porém, não é obrigatório o uso da instrução default. Um exemplo para melhor fixação: 2 i n t main ( ) { i n t candidato ; 4 p r i n t f ( " D i g i t e o n m e r o do seu candidato e t e c l e ENTER: " ) ; s c a n f ( "%d",& candidato ) ; 6 switch ( candidato ) 8 { c a s e 1 3 : 10 p r i n t f ( "Voce votou na I r i n y Lopes! \ n" ) ; break ; 12 c a s e 2 3 : p r i n t f ( "Voce votou no Rezende! \ n" ) ; 14 break ; c a s e 4 3 : 16 p r i n t f ( "Voce votou no Luiz Paulo! \ n" ) ; break ; 18 d e f a u l t : p r i n t f ( "Voce votou nulo! \ n" ) ; 20 22 r e t u r n 0 ; Como pode-se observar, você digita o número do candidato e este número é passado para o switch. Com isso, caso o número seja 13, será executado as instruções do caso 13 e sairá do switch devido ao break. Observe que, neste caso, o valor default foi utilizado. Atentese também que não foi utilizado o break no valor default, já que ele é o último valor do comando switch. PET - Engenharia de Computação 4

Praticando 1. (FÁCIL)Faça um programa leia dois números inteiros do teclado e diga qual o maior deles. 2. (FÁCIL)Faça um programa que pergunte a idade de uma pessoa e diga se ela pode ou não doar sangue. Para doar sangue é necessário ter entre 18 e 67 anos. 3. (MÉDIO)Faça um programa que leia do teclado três números reais e verifique se o primeiro está contido no intervalo fechado(os limites estão contidos no intervalo) formado pelo segundo e terceiro. Atenção: o segundo número pode ser maior que o terceiro número. Exemplo: 5 2 10 O número 5 está contido no intervalo, ou seja, ele é maior que 2 e menor que 10. 4. (DIFÍCIL)Faça um programa que tem como função verificar se o usuário digitou uma letra do teclado. Caso tenha digitado informe Sim, é uma letra., caso contrário Não é uma letra. O programa deve considerar letras maiúsculas e minúsculas. OBS: Você poderá usar somente 1(UM) operador lógico OU( ). 5. (DIFÍCIL)Faça um programa que receba como entrada os coeficientes a,b,c (lidos do teclado) de uma equação do segundo grau do tipo ax + bx + c, e informe: Nenhuma raiz real, caso só possua raízes complexas (Delta menor que zero). Uma única raiz real, caso a equação só possua uma raíz real. Duas raízes reais, caso possua duas raízes reais. Desafios 1. (Olímpiada Brasileira de Informática Nível 1, Fase 1) Os computadores foram inventados para realizar cálculos muito rapidamente, e atendem a esse requisito de maneira extraordinária. Porém, nem toda conta pode ser feita num computador, pois ele não consegue representar todos os números dentro de sua memória. Em um computador pessoal atual, por exemplo, o maior inteiro que é possível representar em sua memória é 4.294.967.295. Caso alguma conta executada pelo computador dê um resultado acima desse número, ocorrerá o que chamamos de overflow, que é quando o computador faz uma conta e o resultado não pode ser representado, por ser maior do que o valor máximo permitido (em inglês overflow significa trasbordar). Por exemplo, se um computador só pode representar números menores do que 1023 e mandamos ele executar a conta 1022 + 5, vai ocorrer overflow. PET - Engenharia de Computação 5

Tarefa Dados o maior número que um computador consegue representar e uma expressão de soma ou multiplicação entre dois inteiros, determine se ocorrerá overflow. Entrada A entrada contém um único conjunto de testes, que deve ser lido do dispositivo de entrada padrão (normalmente o teclado). A primeira linha da entrada contém um inteiro N (1 N 500.000) representando o maior número que o computador consegue representar. A segunda linha contém um inteiro P (0 P 1000), seguido de um espaço em branco, seguido de um caractere C (que pode ser + ou *, representando os operadores de adição e multiplicação, respectivamente), seguido de um espaço em branco, seguido de um outro inteiro Q (0 Q 1000). Essa linha representa a expressão P + Q, se o caractere C for +, ou P Q, se o caractere C for *. Saída Seu programa deve imprimir, na saída padrão, a palavra OVERFLOW se o resultado da expressão causar um overflow, ou a palavra OK caso contrário. Ambas as palavras devem ser escritas com letras maiúsculas. Exemplos: Entrada 10 5+5 44 23*2 323500 42*35 Saida Correspondente OK OVERFLOW OK NO PRÓXIMO ENCONTRO... No próximo encontro vamos continuar nossos estudos em estruturas para controle de fluxo. Veremos uma outra estrutura extremamente importante na construção de programas: a estrutura de repetição! PET - Engenharia de Computação 6