Working 03 : Conceitos Básicos II

Documentos relacionados
Working 03 : Conceitos Básicos II

Working 04 : Conceitos Básicos III

Algoritmos e Programação

Exercícios Repetição

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

Working 05 : Modularização

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

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

Working 03 : Conceitos Básicos I

Material Didático Unificado.

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

Aula 8 Comandos de Seleção

Aula 02 -Introdução àlinguagc Programação: Estrutura-Seleção. OPL e IC1 Prof: Anilton Joaquim da Silva

Aula 2 Comandos de Decisão

Aula 05: Condicionais (if / else)

Programação I PRG Engenharia de Telecomunicações 2ª Fase Professor: Cleber Jorge Amaral

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

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

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

Programação I Estruturas de Decisão

Algoritmos e Programação

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

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

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

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

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

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

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

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

exatasfepi.com.br Informática C/C++ André Luís Duarte Feliz é o homem que acha sabedoria, e o homem que adquire entendimento; Provérbios 3:13

Comandos em C (cont.)

Programação Computacional C/C++

PROGRAMAÇÃO COMPUTACIONAL

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

Revisão. Profa Marina Gomes

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:

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

Programação II. Aula 3

Material Didático Unificado.

ALGORITMOS E APLICAÇÕES. FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior

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

Puca Huachi Vaz Penna

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

Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Lista de Exercícios para a Terceira Unidade

Universidade Federal do Espírito Santo. Programação II. CT IX - Sala 206 Departamento de Informática Centro Tecnológico

Conceitos básicos. Computação eletrônica: Gurvan Huiban

Universidade Federal do Espírito Santo. Programação II. CT IX - Sala 201 Departamento de Informática Centro Tecnológico

Unidade 10: Estruturas de Decisão Compostas Prof. Daniel Caetano

Introdução à Linguagem C

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA DE CIÊNCIAS E TECNOLOGIA. ECT1203 Linguagem de Programação Turma Prof.

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

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...

Entrada. Comando 1 Comando 2. Saída

Segundo programa: media.c

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008

Algoritmo e Programação Matemática

Programação científica C++

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA ESTRUTURA COM DECISÃO MÚLTIPLA. Prof. Dr. Daniel Caetano

Computação I (MAB120) DCC/UFRJ

Treinamento Olimpíada Brasileira de Informática

3. Linguagem de Programação C

Introducao a Programacao Estruturas de decisão

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

Conceitos Básicos Linguagem C

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

3. Linguagem de Programação C

Programação Estruturada

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

Lista de Exercícios 2

Programação: Vetores

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

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES

MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais

Sintaxe Básica de Java Parte 2

Aula 05: Condicionais (Parte 2)

Linguagem Java. Introdução. Rosemary Silveira Filgueiras Melo

Prof. A. G. Silva. 28 de agosto de Prof. A. G. Silva INE5603 Introdução à POO 28 de agosto de / 1

Estruturas Condicionais

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

Material Didático Proposto

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

Prof. Tiago Alves de Oliveira. Tiago Alves de Oliveira - 1

Estruturas de Repetição

Algoritmos e Programação - Engenharia da Computação -

Laboratório de Programação II

Técnicas de Programação

Aula 4 Estruturas de Controle

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

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

Linguagem de Programação

Computação 2. Aula 1. Profª. Fabiany Estruturas básicas de programação.

Unidade 5: Introdução à Programação com Python Prof. Daniel Caetano

LINGUAGEM C: COMANDOS DE REPETIÇÃO

Variáveis e Entrada de Dados Marco André Lopes Mendes marcoandre.googlepages.

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: sábado, 26/08, 04:00. 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 i f (< e x p r e s s a o l o g i c a >) { 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: i f (< e x p r e s s a o l o g i c a >) 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: i f (< e x p r e s s a o l o g i c a >) 2 <comando> e l s e 4 <comando> Mas lembre-se 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: i f (< e x p r e s s a o l o g i c a >) 2 { 4 e l s e 6 { i f (< e x p r e s s a o l o g i c a >) 8 { 10 Poderia ser feito assim: 1 i f (< e x p r e s s a o l o g i c a >) { 3 5 e l s e i f (< e x p r e s s a o l o g i c a >) { 7 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. PET - Engenharia de Computação 3

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 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: PET - Engenharia de Computação 4

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. Observe 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 5

Praticando Para todos os praticandos abaixo faça um programa de acordo com o enunciado, e imprima na tela APENAS o que for pedido, e da maneira que for pedido. 1. Faça um programa leia dois números inteiros do teclado e diga qual o maior deles. Caso os numeros sejam iguais, deve ser impresso apenas "IGUAIS"(sem as aspas). 7 7 IGUAIS 5 10 10 2. Faça um programa que receba a idade de uma pessoa e diga se ela pode ou não doar sangue. Para doar sangue é necessário ter mais de 17 anos e menos de 68 anos. 54 PODE 86 NAO PODE 3. 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. Caso esteja contido, deve ser impresso "CONTIDO", caso contrario a saída será "NAO CONTIDO"(sem aspas, em ambos os casos). Atenção: o segundo número pode ser maior que o terceiro número. 5 2 10 CONTIDO 2.0 5.0 10.0 NAO CONTIDO 4. Faça um programa que tem como função verificar se o usuário digitou uma letra do teclado. Caso tenha digitado informe SIM, caso contrário NAO (sem as aspas, em ambos os casos). O programa deve considerar letras maiúsculas e minúsculas. OBS: Você poderá usar somente 1(UM) operador lógico OU( ). A SIM ) NAO 5. 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 2 + bx + c, e informe: NENHUMA, caso só possua raízes complexas (Delta menor que zero). UMA, caso a equação só possua uma raíz real. DUAS, caso possua duas raízes reais. PET - Engenharia de Computação 6

Desafios 1 1 1 NENHUMA 0 0 0 UMA -1.0 1.0 1.0 DUAS 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. 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: PET - Engenharia de Computação 7

10 OK 5 + 5 44 OVERFLOW 23 * 2 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 8