Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução Estruturas de controle em C Exercícios Considerações finais Estruturas de controle em C Prof. DSc. Newton Spolaôr Disciplina Computação I Bacharelado em Ciência da Computação Universidade Estadual do Oeste do Paraná (UNIOESTE) Brasil 25/08/2016 Introdução Estruturas de controle em C Exercícios Considerações finais Sumário 1 Introdução 2 Estruturas de controle em C 3 Exercícios 4 Considerações finais Newton Spolaôr Estruturas de controle em C 2 Introdução Estruturas de controle em C Exercícios Considerações finais Aula anterior em um breve olhar Motivação para estruturas de controle Objetivo desta aula Aula anterior em um breve olhar Na aula anterior foram revisados alguns conceitos básicos de programação, tais como tipos de dados e constantes Também foram apresentados o histórico da linguagem C e os primeiros trechos de código Nesta aula são abordados conceitos referentes a estruturas de controle em C Newton Spolaôr Estruturas de controle em C 3 Introdução Estruturas de controle em C Exercícios Considerações finais Aula anterior em um breve olhar Motivação para estruturas de controle Objetivo desta aula Limitações da estrutura sequencial As instruções C vistas até o momento são executadas conforme um fluxo sequencial Embora essa abordagem seja suficiente em alguns casos, ela não consegue resolver problemas mais complexos Em particular, ela não é capaz de tratar o desvio condicional do fluxo de execução Newton Spolaôr Estruturas de controle em C 4 Introdução Estruturas de controle em C Exercícios Considerações finais Aula anterior em um breve olhar Motivação para estruturas de controle Objetivo desta aula Limitações da estrutura sequencial Exemplo: Escreva um algoritmo que receba o valor do saque realizado pelo cliente de um caixa eletrônico e retorne quantas notas de cada valor serão necessárias para atender ao saque com a menor quantidade de notas possível, como ilustrado na figura [1]. O caixa possui notas de 100, 50, 20, 10, 5 e 1 reais. Newton Spolaôr Estruturas de controle em C 5 Introdução Estruturas de controle em C Exercícios Considerações finais Aula anterior em um breve olhar Motivação para estruturas de controle Objetivo desta aula Limitações da estrutura sequencial O que acontece se o valor de entrada for maior que o limite máximo estipulado pelo banco? Em caixas eletrônicos reais, são informadas somente as notas que de fato serão sacadas Exemplo: ao sacar 999 reais, não é informado ao cliente “0 notas de 10 reais” Como tornar o algoritmo flexível para desviar o fluxo de acordo com essa condição? Para resolver essas questões, é possível utilizar conceitos de estrutura condicional Newton Spolaôr Estruturas de controle em C 6 Introdução Estruturas de controle em C Exercícios Considerações finais Aula anterior em um breve olhar Motivação para estruturas de controle Objetivo desta aula Limitações da estrutura sequencial O que acontece se o valor de entrada for maior que o limite máximo estipulado pelo banco? Em caixas eletrônicos reais, são informadas somente as notas que de fato serão sacadas Exemplo: ao sacar 999 reais, não é informado ao cliente “0 notas de 10 reais” Como tornar o algoritmo flexível para desviar o fluxo de acordo com essa condição? Para resolver essas questões, é possível utilizar conceitos de estrutura condicional Newton Spolaôr Estruturas de controle em C 6 Introdução Estruturas de controle em C Exercícios Considerações finais Aula anterior em um breve olhar Motivação para estruturas de controle Objetivo desta aula Estrutura condicional [2] As estruturas condicionais permitem desviar o fluxo de acordo com o resultado de uma expressão lógica O controle do desvio é realizado de distintas maneiras Comando condicional simples. se expressão verdadeira, a sequência de instruções é executada Comando condicional composto. se expresssão verdadeira, a sequência de instruções é executada; caso contrário, outra sequência é executada Seleção entre duas ou mais sequências de comandos. Cada sequência de instruções é associada a uma expressão; se expressão verdadeira, a sequência correspondente é executada Newton Spolaôr Estruturas de controle em C 7 Introdução Estruturas de controle em C Exercícios Considerações finais Aula anterior em um breve olhar Motivação para estruturas de controle Objetivo desta aula Estrutura condicional [2] As estruturas condicionais permitem desviar o fluxo de acordo com o resultado de uma expressão lógica O controle do desvio é realizado de distintas maneiras Comando condicional simples. se expressão verdadeira, a sequência de instruções é executada Comando condicional composto. se expresssão verdadeira, a sequência de instruções é executada; caso contrário, outra sequência é executada Seleção entre duas ou mais sequências de comandos. Cada sequência de instruções é associada a uma expressão; se expressão verdadeira, a sequência correspondente é executada Newton Spolaôr Estruturas de controle em C 7 Introdução Estruturas de controle em C Exercícios Considerações finais Aula anterior em um breve olhar Motivação para estruturas de controle Objetivo desta aula Estrutura condicional [2] As estruturas condicionais permitem desviar o fluxo de acordo com o resultado de uma expressão lógica O controle do desvio é realizado de distintas maneiras Comando condicional simples. se expressão verdadeira, a sequência de instruções é executada Comando condicional composto. se expresssão verdadeira, a sequência de instruções é executada; caso contrário, outra sequência é executada Seleção entre duas ou mais sequências de comandos. Cada sequência de instruções é associada a uma expressão; se expressão verdadeira, a sequência correspondente é executada Newton Spolaôr Estruturas de controle em C 7 Introdução Estruturas de controle em C Exercícios Considerações finais Aula anterior em um breve olhar Motivação para estruturas de controle Objetivo desta aula Estrutura condicional [2] As estruturas condicionais permitem desviar o fluxo de acordo com o resultado de uma expressão lógica O controle do desvio é realizado de distintas maneiras Comando condicional simples. se expressão verdadeira, a sequência de instruções é executada Comando condicional composto. se expresssão verdadeira, a sequência de instruções é executada; caso contrário, outra sequência é executada Seleção entre duas ou mais sequências de comandos. Cada sequência de instruções é associada a uma expressão; se expressão verdadeira, a sequência correspondente é executada Newton Spolaôr Estruturas de controle em C 7 Introdução Estruturas de controle em C Exercícios Considerações finais Aula anterior em um breve olhar Motivação para estruturas de controle Objetivo desta aula Comando condicional simples [2] Figura: Fluxograma correspondente ao comando condicional simples Newton Spolaôr Estruturas de controle em C 8 Introdução Estruturas de controle em C Exercícios Considerações finais Aula anterior em um breve olhar Motivação para estruturas de controle Objetivo desta aula Comando condicional composto [2] Figura: Fluxograma correspondente ao comando condicional composto Newton Spolaôr Estruturas de controle em C 9 Introdução Estruturas de controle em C Exercícios Considerações finais Aula anterior em um breve olhar Motivação para estruturas de controle Objetivo desta aula Seleção entre sequências de comandos [2] E como seria o fluxograma para a seleção entre duas ou mais sequências de comandos? No final das contas, seria uma variação do comando condicional composto Diferentemente do Pascal, em C é necessáriodefinir explicitamente o break para evitar que novas expressões lógicas sejam testadas após o aceite da primeira Newton Spolaôr Estruturas de controle em C 10 Introdução Estruturas de controle em C Exercícios Considerações finais Aula anterior em um breve olhar Motivação para estruturas de controle Objetivo desta aula Seleção entre sequências de comandos [2] E como seria o fluxograma para a seleção entre duas ou mais sequências de comandos? No final das contas, seria uma variação do comando condicional composto Diferentemente do Pascal, em C é necessário definir explicitamente o break para evitar que novas expressões lógicas sejam testadas após o aceite da primeira Newton Spolaôr Estruturas de controle em C 10 Introdução Estruturas de controle em C Exercícios Considerações finais Aula anterior em um breve olhar Motivação para estruturas de controle Objetivo desta aula Seleção entre sequências de comandos [2] E como seria o fluxograma para a seleção entre duas ou mais sequências de comandos? No final das contas, seria uma variação do comando condicional composto Diferentemente do Pascal, em C é necessário definir explicitamente o break para evitar que novas expressões lógicas sejam testadas após o aceite da primeira Newton Spolaôr Estruturas de controle em C 10 Introdução Estruturas de controle em C Exercícios Considerações finais Aula anterior em um breve olhar Motivação para estruturas de controle Objetivo desta aula Limitações da estrutura sequencial Outra limitação da estrutura sequencial é a ineficiência, do ponto de vista do programador, para definir instruções que devem ser repetidas Existem problemas que demandam soluções que envolvam repetição de alguma lógica Ordenação de dados no contexto de big data Cálculo de Fibonacci, pi e outras séries numéricas aplicáveis ao mundo real Sistemas de monitoramento Para resolver essas questões, é possível utilizar conceitos de estrutura de repetição Newton Spolaôr Estruturas de controle em C 11 Introdução Estruturas de controle em C Exercícios Considerações finais Aula anterior em um breve olhar Motivação para estruturas de controle Objetivo desta aula Limitações da estrutura sequencial Outra limitação da estrutura sequencial é a ineficiência, do ponto de vista do programador, para definir instruções que devem ser repetidas Existem problemas que demandam soluções que envolvam repetição de alguma lógica Ordenação de dados no contexto de big data Cálculo de Fibonacci, pi e outras séries numéricas aplicáveis ao mundo real Sistemas de monitoramento Para resolver essas questões, é possível utilizar conceitos de estrutura de repetição Newton Spolaôr Estruturas de controle em C 11 Introdução Estruturas de controle em C Exercícios Considerações finais Aula anterior em um breve olhar Motivação para estruturas de controle Objetivo desta aula Limitações da estrutura sequencial Outra limitação da estrutura sequencial é a ineficiência, do ponto de vista do programador, para definir instruções que devem ser repetidas Existem problemas que demandam soluções que envolvam repetição de alguma lógica Ordenação de dados no contexto de big data Cálculo de Fibonacci, pi e outras séries numéricas aplicáveis ao mundo real Sistemas de monitoramento Para resolver essas questões, é possível utilizar conceitos de estrutura de repetição Newton Spolaôr Estruturas de controle em C 11 Introdução Estruturas de controle em C Exercícios Considerações finais Aula anterior em um breve olhar Motivação para estruturas de controle Objetivo desta aula Limitações da estrutura sequencial Outra limitação da estrutura sequencial é a ineficiência, do ponto de vista do programador, para definir instruções que devem ser repetidas Existem problemas que demandam soluções que envolvam repetição de alguma lógica Ordenação de dados no contexto de big data Cálculo de Fibonacci, pi e outras séries numéricas aplicáveis ao mundo real Sistemas de monitoramento Para resolver essas questões, é possível utilizar conceitos de estrutura de repetição Newton Spolaôr Estruturas de controle em C 11 Introdução Estruturas de controle em C Exercícios Considerações finais Aula anterior em um breve olhar Motivação para estruturas de controle Objetivo desta aula Estrutura de repetição Basicamente, as estruturas de repetição permitem executar 0, 1 ou mais vezes uma sequência de instruções O controle sobre a repetição de instruções é realizado por meio de contador ou de lógica Contador. Repetição ocorre X vezes, salvo quebra forçada do loop Lógica. Repetição ocorre enquanto uma determinada expressão lógica, testada no início ou no fim do loop, for verdadeira Newton Spolaôr Estruturas de controle em C 12 Introdução Estruturas de controle em C Exercícios Considerações finais Aula anterior em um breve olhar Motivação para estruturas de controle Objetivo desta aula Objetivo desta aula Apresentar estruturas condicionais e de repetição em C Newton Spolaôr Estruturas de controle em C 13 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Sumário 1 Introdução 2 Estruturas de controle em C 3 Exercícios 4 Considerações finais Newton Spolaôr Estruturas de controle em C 14 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Comando condicional simples [2] Newton Spolaôr Estruturas de controle em C 15 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Exemplo if [2] É importante ter em mente que, com o uso de if-else, garantimos a execução de uma das sequências de instruções Newton Spolaôr Estruturas de controle em C 16 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Comando condicional composto [2] Newton Spolaôr Estruturas de controle em C 17 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Exemplo if-else [2] Newton Spolaôr Estruturas de controle em C 18 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Aninhamento de if [2] É possível aninhar construções do tipo if-else em diversos níveis O if aninhado é simplesmente um if dentro da declaração de um outro if mais externo O único cuidado que devemos ter é o de saber exatamente a qual if um determinado else está ligado Como esse problema poderia ser evitado? Newton Spolaôr Estruturas de controle em C 19 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Aninhamento de if [2] É possível aninhar construções do tipo if-else em diversos níveis O if aninhado é simplesmente um if dentro da declaração de um outro if mais externo O único cuidado que devemos ter é o de saber exatamente a qual if um determinado else está ligado Como esse problema poderia ser evitado? Newton Spolaôr Estruturas de controle em C 19 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Aninhamento de if [2] É possível aninhar construções do tipo if-else em diversos níveis O if aninhado é simplesmente um if dentro da declaração de um outro if mais externo O único cuidado que devemos ter é o de saber exatamente a qual if um determinado else está ligado Como esse problema poderia ser evitado? Newton Spolaôr Estruturas de controle em C 19Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Aninhamento de if [2] É possível aninhar construções do tipo if-else em diversos níveis O if aninhado é simplesmente um if dentro da declaração de um outro if mais externo O único cuidado que devemos ter é o de saber exatamente a qual if um determinado else está ligado Como esse problema poderia ser evitado? Newton Spolaôr Estruturas de controle em C 19 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Aninhamento de if [2] Newton Spolaôr Estruturas de controle em C 20 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Exemplo de aninhamento de if [2] Newton Spolaôr Estruturas de controle em C 21 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Encadeamento if-else-if [2] Newton Spolaôr Estruturas de controle em C 22 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Exemplo encadeamento if-else-if [2] Newton Spolaôr Estruturas de controle em C 23 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Exemplo encadeamento if-else-if [2] Esse tipo de lógica também pode ser implementado com switch ... case Newton Spolaôr Estruturas de controle em C 24 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Seleção entre duas ou mais sequências de comandos [3] Newton Spolaôr Estruturas de controle em C 25 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Exemplo seleção entre sequências de comandos [3] Newton Spolaôr Estruturas de controle em C 26 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Estrutura de repetição controlada por contador [3] for (<expressão1>; <expressão2>; <expressão3>) { //sequência de instruções } Newton Spolaôr Estruturas de controle em C 27 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Estrutura de repetição controlada por contador [3] for (<expressão1>; <expressão2>; <expressão3>) { //sequência de instruções } Newton Spolaôr Estruturas de controle em C 27 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Estrutura de repetição controlada por contador [3] for (<expressão1>; <expressão2>; <expressão3>) { //sequência de instruções } Newton Spolaôr Estruturas de controle em C 27 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Estrutura de repetição controlada por contador [3] Na forma geral anterior... Expressão1: iniciação do contador Expressão2: expressão lógica envolvendo o contador; enquanto for verdadeira, há repetição Expressão3: modificador que atua sobre o contador, sendo geralmente um incremento Para quebra forçada de loop, usar break Newton Spolaôr Estruturas de controle em C 28 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Estrutura de repetição controlada por contador [3] Na forma geral anterior... Expressão1: iniciação do contador Expressão2: expressão lógica envolvendo o contador; enquanto for verdadeira, há repetição Expressão3: modificador que atua sobre o contador, sendo geralmente um incremento Para quebra forçada de loop, usar break Newton Spolaôr Estruturas de controle em C 28 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Estrutura de repetição controlada por contador [3] Na forma geral anterior... Expressão1: iniciação do contador Expressão2: expressão lógica envolvendo o contador; enquanto for verdadeira, há repetição Expressão3: modificador que atua sobre o contador, sendo geralmente um incremento Para quebra forçada de loop, usar break Newton Spolaôr Estruturas de controle em C 28 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Estrutura de repetição controlada por contador [3] Na forma geral anterior... Expressão1: iniciação do contador Expressão2: expressão lógica envolvendo o contador; enquanto for verdadeira, há repetição Expressão3: modificador que atua sobre o contador, sendo geralmente um incremento Para quebra forçada de loop, usar break Newton Spolaôr Estruturas de controle em C 28 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Exemplo for [3] Newton Spolaôr Estruturas de controle em C 29 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Estrutura de repetição controlada por lógica [3] while (<expressão>) { //sequência de instruções } Newton Spolaôr Estruturas de controle em C 30 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Estrutura de repetição controlada por lógica [3] while (<expressão>) { //sequência de instruções } Newton Spolaôr Estruturas de controle em C 30 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Estrutura de repetição controlada por lógica [3] while (<expressão>) { //sequência de instruções } Newton Spolaôr Estruturas de controle em C 30 Introdução Estruturas de controle em C Exercícios Considerações finais Estrutura condicional Estruturas de repetição Exemplo while [3] Newton Spolaôr Estruturas de controle em C 31 Introdução Estruturas de controle em C Exercícios Considerações finais Sumário 1 Introdução 2 Estruturas de controle em C 3 Exercícios 4 Considerações finais Newton Spolaôr Estruturas de controle em C 32 Introdução Estruturas de controle em C Exercícios Considerações finais Exercício 1 [2] Estime o número pi considerando a série pi = 4− 43 + 45 − 47 + 49 − 411 + ... Para facilitar, considere que a série terá n termos Assim, para n = 5, pi = 4− 43 + 45 − 47 + 49 Newton Spolaôr Estruturas de controle em C 33 Introdução Estruturas de controle em C Exercícios Considerações finais Exercício 2 [4] Escreva um programa que lê um número positivo inteiro entre 1 e 255 e imprime sua representação binária Exemplo: o número 22 é representado como 10110 em binário Newton Spolaôr Estruturas de controle em C 34 Introdução Estruturas de controle em C Exercícios Considerações finais Exercício 3 [5] Crie um programa que lê uma quantidade indeterminada de números inteiros A partir desses números, conte quantos estão nos intervalos [0− 50), [50− 100) e -[100−∞) A entrada de dados deve terminar quando for lido um número negativo Newton Spolaôr Estruturas de controle em C 35 Introdução Estruturas de controle em C Exercícios Considerações finais Exercício 4 [5] Construa um programa que leia um conjunto não determinado de valores, um por vez, e os armazene em um vetor O programa deve escrever o valor lido, seu cubo e sua raízquadrada, separando os valores por ponto e vírgula (;) Além disso, antes do 1o número e a cada 5 números, deve ser impresso um cabeçalho como a mensagem “valor lido; cubo; raíz quadrada” Finalizar o programa quando for lido um número menor que zero Newton Spolaôr Estruturas de controle em C 36 Introdução Estruturas de controle em C Exercícios Considerações finais Considerações finais 1 Introdução 2 Estruturas de controle em C 3 Exercícios 4 Considerações finais Newton Spolaôr Estruturas de controle em C 37 Introdução Estruturas de controle em C Exercícios Considerações finais Considerações finais Nesta aula foram revisados conceitos relacionados a estruturas condicionais e de repetição As principais estruturas consideradas foram if, switch ... case, for e while Newton Spolaôr Estruturas de controle em C 38 Introdução Estruturas de controle em C Exercícios Considerações finais Contato newtonsp.unioeste@gmail.com Newton Spolaôr Estruturas de controle em C 39 Referências [1] Adão Braga. Quatro projetos em java feitos com netbeans. http://www.adaobraga.com.br/wp- content/uploads/2012/02/image3.png, 2012. [2] Denis F. Wolf. Algoritmos. http://wiki.icmc.usp.br/index.php/Scc-101, 2014. Notas didáticas. [3] Tutorialspoint. C - data types. http://www.tutorialspoint.com/cprogramming/c_data_types.htm, 2014. [4] Fernando V. Paulovich. Algoritmos e estruturas de dados i. http://wiki.icmc.usp.br/index.php/Scc-202(paulovich), 2010. Notas didáticas. [5] Ana Fernanda Gomes Ascencio and Edilene Aparecida Veneruchi de Campos. Fundamentos da Newton Spolaôr Estruturas de controle em C 39 Referências Programação de Computadores - Algoritmos, Pascal, C/C++ e Java. Prentice Hall, 2 edition, 2007. Newton Spolaôr Estruturas de controle em C 39 Introdução Aula anterior em um breve olhar Motivação para estruturas de controle Objetivo desta aula Estruturas de controle em C Estrutura condicional Estruturas de repetição Exercícios Considerações finais
Compartilhar