prof. julio arakaki ([email protected])jarakaki/lic/jasoupuc.pdf · seleção múltipla de acordo...

50
“JaSouPUC” Prof. Julio Arakaki ([email protected]) Ciência da Computação https://www.pucsp.br/graduacao/ciencia-da-computacao 09/02/2020 16:26 1 FCET - Faculdade de Ciências Exatas e Tecnologia

Upload: others

Post on 21-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

“JaSouPUC”

Prof. Julio Arakaki ([email protected])

Ciência da Computação

https://www.pucsp.br/graduacao/ciencia-da-computacao09/02/2020 16:26 1

FCET - Faculdade de Ciências Exatas e Tecnologia

Page 2: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Os encontros em Lab...

• (10/02 13h30 15h00- Julio)(Linguagem C)

• Introdução, E/S, Variáveis, Operadores Aritméticos e Exercícios

• (11/02 13h30 15h00 - Julio)(Linguagem C)

• Operadores relacionais, Operadores lógicos, Condicionais, Repetição, Vetores e Exercícios

https://www.pucsp.br/graduacao/ciencia-da-computacao 216:26

Page 3: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

https://www.pucsp.br/graduacao/ciencia-da-computacao 3

Algumas linguagens de programação

16:26

Page 4: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

O processo de geração de um programa de computador:

•Fase de tradução: programa-fonte é transformado em um programa-objeto.

•Fase de ligação: junta o programa-objeto às instruções necessárias das bibliotecas para produzir o programa executável.

https://www.pucsp.br/graduacao/ciencia-da-computacao

Programa Fonte Compilador

Programa Objeto

LigadorPrograma Executável

Programa Objeto das Bibliotecas

IDE

Ambiente de desenvolvimento (IDE)

16:26 4

Page 5: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Code::Blocks

• Ambiente integrado de desenvolvimento (IDE - IntegratedDevelopment Environment)

• O Code::Blocks é um software livre (sob GNU General Public License) multiplataforma (Windows, Linux, Mac e etc..)

• Também pode ser usado para o desenvolvimento de programas em outras linguagens (Ex: Python)

• URL da ferramenta: http://www.codeblocks.org/

16:26 https://www.pucsp.br/graduacao/ciencia-da-computacao 5

Page 6: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Code::Blocks• Vamos utilizar a IDE para realizas as operações mais simples

• Criar um projeto, compilar, executar e depurar

16:26 https://www.pucsp.br/graduacao/ciencia-da-computacao 6

Page 7: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Code::Blocks• Para criar um projeto, deve-se selecionar a opção “File >> New >> Project “. Para construir o projeto, precisamos

basicamente colocar um nome e um diretório para armazenamento, assim como selecionar a linguagem (C ou C++) e o tipo de aplicação

• O tipo de aplicação mais adequado é chamado de “Console Application “, como mostra a figura abaixo

16:26 https://www.pucsp.br/graduacao/ciencia-da-computacao 7

Page 8: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Code::Blocks• Na sequência seleciona-se a linguagem de programação a ser utilizada no projeto. A IDE oferece por default as linguagens

C ou C++.

• Depois de selecionar a linguagem é necessário escolher um nome para o projeto e um diretório para armazenamento, como ilustrado a seguir.

16:26 https://www.pucsp.br/graduacao/ciencia-da-computacao 8

Page 9: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Características:

✓Propósito geral

✓Estruturada

✓Procedural / imperativa

✓Muito usada para desenvolver sistemas e aplicativos

✓Disponível para diferentes plataformas

✓Padronização ANSI (“American National Standards Institute”)✓ANSI C

https://www.pucsp.br/graduacao/ciencia-da-computacao

Linguagem C

16:26 9

Page 10: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Programação imperativa (wikipedia)✓ Na Ciência da Computação, programação imperativa é umparadigma de programação que descreve a computação como ações,enunciados ou comandos que mudam o estado (variáveis) de umprograma.

✓ Muito parecido com o comportamento imperativo das linguagensnaturais que expressam ordens, programas imperativos são uma

sequência de comandos para o computador executar.

https://www.pucsp.br/graduacao/ciencia-da-computacao

Linguagem C

16:26 10

Page 11: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Características:

✓Considerada de nível médio

✓C permite manipular bits, bytes e endereços de memória como uma linguagem de baixo nível

✓C possui construções e rotinas como linguagens de alto nível

✓C é mais utilizado por especialistas e profissionais da área da Computação

✓Uso primário para desenvolvimento de sistemas

https://www.pucsp.br/graduacao/ciencia-da-computacao

Linguagem C

16:26 11

Page 12: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Estrutura básica de um programa em C:

https://www.pucsp.br/graduacao/ciencia-da-computacao

#include <stdio.h>

void main(){

// chamada da funcao para saida (em console)

printf("\nBenvindo a \nPUC-SP");

}

Arquivo: benvindo.c

Dicas:- “comandos” devem sempre ser terminados por ; (ponto-e-virgula) - colchetes, chaves, parênteses e aspas: sempre em pares- Sempre salve o programa antes de compilar- Sempre compile o programa antes de executar

Linguagem C

16:26 12

Page 13: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

https://www.pucsp.br/graduacao/ciencia-da-computacao

#include <stdio.h>

void main(){

// chamada da funcao para saida (em console)

printf("\nBenvindo a \nPUC-SP");

}

Arquivo: benvindo.c

Praticando...

16:26 13

1. “Implemente” um programa que mostre a mensagem na tela:

===============================================

Benvindo ao JaSouPUC!!

Curso: Ciencia da Computacao – turma 1º. 2020

===============================================

Page 14: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

• Os nomes das variáveis devem conter apenas letras, dígitos e o símbolo _

• Os principais tipos são: int, float, double e char

• Exemplos:int n;

int quantidade_valores;

float x, y, somaValores;

char sexo;

char nome[40]; // Vetor de caracteres

https://www.pucsp.br/graduacao/ciencia-da-computacao

C diferencia letras maiúsculas de minúsculas!int n, N;

n é diferente de N

Tipos, Variáveis e Declarações

16:26 14

Page 15: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

• Função printfprintf ("formatos", var1, var2,...)

Exemplos:

int i, j;

float x;

char c;

char nome[20];

printf("%d", i);

printf("%d, %f", j, x);

printf("%c", c);

printf("%s", nome);

https://www.pucsp.br/graduacao/ciencia-da-computacao

Saída de Dados

16:26 15

Page 16: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

https://www.pucsp.br/graduacao/ciencia-da-computacao

Praticando...

16:26 16

2. “Implemente” um programa que calcule a média entre 2 números.

3. Reescreva o programa 2 utilizando variáveis.

Page 17: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

• Atribui o valor da direita à variável da esquerda

• O valor pode ser:• uma constante,• uma variável ou • uma expressão

• Exemplosx = 4; --> lemos x recebe 4

y = x + 2;

y = y + 4;

valor = 2.5;

sexo = 'F’;

https://www.pucsp.br/graduacao/ciencia-da-computacao

Comando de atribuição

16:26 17

Page 18: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

• Função scanfscanf ("formatos", &var1, &var2,...)

Exemplos:

int i, j;

float x;

char c;

char nome[50];

scanf("%d", &i);

scanf("%d %f", &j, &x);

scanf("%c", &c);

scanf("%s", nome);

https://www.pucsp.br/graduacao/ciencia-da-computacao

Entrada de Dados

16:26 18

Page 19: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

https://www.pucsp.br/graduacao/ciencia-da-computacao

Praticando...

16:26 19

4. “Implemente” um programa que calcule a média entre 2 números. O programa deverá solicitar (pelo teclado) o nome do aluno, as notas 1 e 2, calcular a media e mostrar os dados.

Page 20: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

https://www.pucsp.br/graduacao/ciencia-da-computacao

Decrementa em 1 o valor de xx----

Incrementa em 1 o valor de xx++++

Resto da divisão de x por yx % y %

Divide x por yx / y /

Multiplica x e yx * y*

Subtrai y de xx – y -

Soma x e yx + y+

ComentárioExemploOperador

Operadores Matemáticos

16:26 20

Page 21: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

https://www.pucsp.br/graduacao/ciencia-da-computacao

Equivale a x = x % yx %= y%=

Equivale a x = x / yx /= y /=

Equivale a x = x * yx *= y *=

Equivale a x = x – yx -= y-=

Equivale a x = x + yx += y +=

Atribui o valor de y a xx = y=

ComentárioExemploOperador

Operadores de Atribuição

16:26 21

Page 22: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Exercícios1. Crie um programa que leia o dia, mês e ano do nascimento

de uma pessoa e imprima a quantidade de anos que ela tem.

2. Crie um programa para calcular e imprimir o IMC de uma pessoa. O peso, a altura e o nome da pessoa deverá ser fornecido pelo teclado.

https://www.pucsp.br/graduacao/ciencia-da-computacao 2216:26

Page 23: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

https://www.pucsp.br/graduacao/ciencia-da-computacao

Tangente de xtan(x)tan

Raiz quadrada de xsqrt(x)sqrt

Seno de xsin(x)sin

Calcula x elevado à potência ypow(x, y)pow

Logaritmo decimal de xlog10(x)log10

Logaritmo natural de xlog(x)log

Arredonda o número deal para baixo; floor(3.2) é 3floor(x)floor

Valor absoluto de xfabs(x)fabs

e elevado à potencia xexp(x)exp

Cosseno de x (x em radianos)cos(x)cos

Arredonda o número real para cima; ceil(3.2) é 4ceil(x)ceil

ComentárioExemploFunção

#include <math.h>Funções Matemáticas

16:26 23

Page 24: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

https://www.pucsp.br/graduacao/ciencia-da-computacao

O conteúdo de x é maior que o de yx > y>

O conteúdo de x é menor que o de yx < y <

O conteúdo de x é maior ou igual ao de yx >= y >=

O conteúdo de x é menor ou igual ao de yx <= y<=

O conteúdo de x é diferente do de yx != y !=

O conteúdo de x é igual ao de yx == y==

ComentárioExemploOperador

Operadores Relacionais

16:26 24

Page 25: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

• && (E - and): retorna verdadeiro se ambos os operandos são verdadeiros e falso nos demais casos.Exemplo:

if (a>2 && b<3)

• || (OU - or): retorna verdadeiro se um ou ambos os operandos são verdadeiros e falso se ambos são falsos.Exemplo:

if (a>1 || b<2)

• ! (NÃO - not): usada com apenas um operando. Retorna verdadeiro se o operando é falso e vice-versa.Exemplo:

if (!var )

https://www.pucsp.br/graduacao/ciencia-da-computacao

Operadores Lógicos

16:26 25

Page 26: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

https://www.pucsp.br/graduacao/ciencia-da-computacao

Estruturas de Controle

Estrutura

Sequencial

Estrutura

com desvio condicionalEstrutura

Iterativa

16:26 26

Page 27: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

https://www.pucsp.br/graduacao/ciencia-da-computacao

Seleção Unidirecional

Todas as linguagens imperativas incluem um seletor unidirecional. O seletor unidirecional do C, chamado instrução lógica if, tem a

forma:

if (<expressão booleana>) <instrução>

Neste caso apenas um comando está sujeito à condição do

comando if.

16:26 27

Page 28: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

https://www.pucsp.br/graduacao/ciencia-da-computacao

Seleção UnidirecionalOutra forma de se vincular mais de uma instrução em um comando de seleção é

utilizar instruções compostas

Abaixo está descrita a sintaxe para uma seleção bidirecional em C/C++:

if (<expressão booleana>) {

{<instrução>}

} else {

{<instrução>}

}

Caso o resultado da expressão booleana seja verdade a 1ª instrução será

executada e a 2ª instrução não. E caso seja falsa a 1ª não será executada e a 2ª

sim.

No lugar destas instruções poderiam ser colocadas instruções compostas para que

mais de um comando estivesse vinculado ao comando if em cada situação.

16:26 28

Page 29: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

https://www.pucsp.br/graduacao/ciencia-da-computacao

Seleção Bidirecional

#include <stdio.h>

void main() {

int x, totPAR=0, totIMPAR=0;

...

printf(“Entre com um numero:”);

scanf(“%d”,&x);

if ((x % 2) == 0){

printf(“O numero e par!”);

totPAR += x;

} else {

printf(“O numero e ímpar!”);

totIMPAR += x;

}

...

printf(“Total par:%d, total impar:%d”,totPAR,totIMPAR);

}

Veja um exemplo de utilização de uma seleção Bidirecional e instruções

compostas:

16:26 29

Page 30: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

https://www.pucsp.br/graduacao/ciencia-da-computacao

Seleção MúltiplaDe acordo com o resultado da expressão (inteira), uma das instruções será

executada. Se o resultado for 1, a primeira instrução é executada, se for 2 a

segunda e assim por diante.

A seleção múltipla em C tem a seguinte forma:

switch (<expressão>) {

{case <expressão constante 1>:{<instrução 1> }}

default:

{<instrução> }

}

16:26 30

Page 31: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

https://www.pucsp.br/graduacao/ciencia-da-computacao

Seleção MúltiplaUm problema com esta estrutura é que os blocos de instruções em cada “case” iniciam

sua execução e terminam ao final do switch, então neste caso deveremos utilizar o

comando break que desviará a execução do código para a próxima instrução depois do fim do bloco.

Introduzindo o comando break ao final de cada bloco de instruções do

comando switch teremos como resultado:

switch (<expressão>) {

case <expressão constante>:{<instrução> };break;

default:

<instrução>

}

16:26 31

Page 32: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

...

switch (num){

case 9:

printf ("\n\nO numero e igual a 9.\n");

break;

case 10:

printf ("\n\nO numero e igual a 10.\n");

break;

case 11:

printf ("\n\nO numero e igual a 11.\n");

break;

default:

printf ("\n\nO numero nao e nem 9 nem 10 nem 11.\n");

}

...

https://www.pucsp.br/graduacao/ciencia-da-computacao

Exemplo

16:26 32

Page 33: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Exercícios1. Crie um programa para verificar se um número é par ou impar.2. Crie um programa que leia duas notas de um aluno pelo teclado e

imprima a média aritmética entre estas notas. Além disso, deverá imprimir uma mensagem indicando que o aluno foi aprovado (media >= 5) ou reprovado (media < 5)

3. Crie um programa para calcular e imprimir o IMC de uma pessoa e msgs de acordo com a tabela a seguir. O peso, a altura e o nome da pessoa deverá ser fornecido pelo teclado.

https://www.pucsp.br/graduacao/ciencia-da-computacao 33

Abaixo de 17 Muito abaixo do peso

Entre 17 e 18,49 Abaixo do peso

Entre 18,5 e 24,99 Peso normal

Entre 25 e 29,99 Acima do peso

Entre 30 e 34,99 Obesidade I

Entre 35 e 39,99 Obesidade II (severa)

Acima de 40 Obesidade III (mórbida

16:26

Page 34: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Exercícios4. O adivinho. Criar um programa que simule o adivinho.

https://www.pucsp.br/graduacao/ciencia-da-computacao 3416:26

Page 35: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

O ADIVINHO – solução matemática

• Justificativa (matemática)• A, B pertencem ao conjunto {0,1,2,3,4,5,6,7,8,9}

• C = (2 x A + 3) x 5 + B C = 10A + 15 + B C – 15 = 10A + B

• Seja D = C- 15

• Como A e B são números de 1 algarismo, o último algarismo de D é igual a B (unidades) e o primeiro algarismo de D é igual a A (dezenas).

• Observe que o maior valor possível de D é igual a 99.

• Se A= 9 e B = 9 então C = 114 e D = 114-15 = 99.

https://www.pucsp.br/graduacao/ciencia-da-computacao 3516:26

Page 36: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Instruções Iterativas

https://www.pucsp.br/graduacao/ciencia-da-computacao16:26 36

Page 37: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Instruções Iterativas lógicas com pré-teste

Pré-teste

https://www.pucsp.br/graduacao/ciencia-da-computacao

Estruturas de Controle

16:26 37

Page 38: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Instruções Iterativas lógicas com pós-teste

Pós-teste

https://www.pucsp.br/graduacao/ciencia-da-computacao

Estruturas de Controle

16:26 38

Page 39: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Instruções Iterativas com contagem

inicia,

controla e

incrementa o

contador

https://www.pucsp.br/graduacao/ciencia-da-computacao

Estruturas de Controle

16:26 39

Page 40: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Uma instrução iterativa de controle de contagem tem uma variável de laço, na qual o valor

da contagem é mantido. Ela também possui alguns meios de especificar os valores inicial e

terminal da variável de laço e a diferença entre seus valores seqüenciais, freqüentemente

chamados stepsize, As especificações iniciais, as terminais e os stepsize de um laço são

chamados de parâmetros do laço.

https://www.pucsp.br/graduacao/ciencia-da-computacao

Estruturas de Controle

16:26 40

Laços Controlados por Contador

Page 41: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Na linguagem C ou C++ a forma geral é:

for (<expressão1>; <expressão2>; <expressão3>)

<corpo do laço>

O corpo do laço pode ser: uma instrução única; uma instrução composta ou uma instrução

nula.

A primeira expressão é avaliada uma única vez quando se inicia o loop. Normalmente é

utilizada para inicializações.

A segunda expressão é o controle do laço avaliada antes de cada execução do corpo do

mesmo.

A terceira expressão é executada depois da execução do corpo do laço. Normalmente

utilizada para incrementos de variáveis.

Laços Controlados por Contador

https://www.pucsp.br/graduacao/ciencia-da-computacao

Estruturas de Controle

16:26 41

Page 42: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Exemplo típico da utilização do laço de contagem:

for (indice = 0; indice <= 10; indice++)

soma = soma + lista [indice];

Pode-se utilizar instruções múltiplas no caso da linguagem C e C++. Veja o exemplo:

for ( cont1 = 0, cont2=0.0;

cont1 <= 10 && cont2 <= 100.0;

soma = ++cont1 + cont2, cont2 *= 2.5);

Laços Controlados por Contador

https://www.pucsp.br/graduacao/ciencia-da-computacao

Estruturas de Controle

16:26 42

Page 43: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

https://www.pucsp.br/graduacao/ciencia-da-computacao

Praticando...

16:26 43

5. “Implemente” um programa que calcule a área dos círculos com o raio variando da seguinte forma: 1, 3, 5, .. , 20 .

6. Altere o programa 6 de tal forma que os valores de inicio, fim e o incremento do raio sejam fornecidos pelo usuário.

Page 44: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Muitas vezes não sabemos exatamente a quantidade de vezes que um

determinado laço será executada, portanto, a utilização de laços

controlados por contador não são os mais adequados.

Nestes casos, são utilizados os laços controlados logicamente. A

continuidade da repetição do laço depende de uma expressão lógica.

https://www.pucsp.br/graduacao/ciencia-da-computacao

Estruturas de Controle

16:26 44

Laços Controlados Logicamente

Page 45: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Questões de projeto

✓O controle deverá ser de pré ou pós teste?

✓O laço controlado logicamente deverá ser uma forma especial de laço de contagem

ou uma instrução lógica independente?

Exemplos:while (<expressão>)

<corpo do laço>

oudo

<corpo do laço>

while (<expressão>)

Laços Controlados Logicamente

Uma instrução lógica

independente seria o caso

de que a expressão lógica

do laço não depende de

uma variável contadora.

https://www.pucsp.br/graduacao/ciencia-da-computacao

Estruturas de Controle

16:26 45

Page 46: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

https://www.pucsp.br/graduacao/ciencia-da-computacao

Praticando...

16:26 46

7. Implemente o programa 6 utilizando while

8. Implemente o programa 6 utilizando do .. while

Page 47: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Localização do controle do laço

Quando devemos colocar o controle do laço no início ou no final do corpo? Ao

colocar o controle no início, o teste será efetuado antes da execução do corpo, e por

isso mesmo, corre o risco de não ser executado nenhuma vez. No caso de colocar o

controle na base, o corpo do laço será executado pelo menos uma vez.

Existem situações em que é conveniente para o programador posicionar o controle

do laço no interior do corpo ao invés de no início ou na base. Por isso, algumas

linguagens oferecem essa capacidade.

https://www.pucsp.br/graduacao/ciencia-da-computacao

Estruturas de Controle

16:26 47

Laços Controlados Logicamente

Page 48: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

O C e o C++ possuem o comando continue que desvia a execução do programa

da sua localização dentro do corpo do laço até o final do corpo. Este comando não

encerra a execução do loop.

No caso do comando break a execução do código também é desviada para o

final do corpo do laço, porém, o laço será terminado.

https://www.pucsp.br/graduacao/ciencia-da-computacao

Estruturas de Controle

16:26 48

Laços Controlados Logicamente

Page 49: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Os exemplos abaixo ilustram a utilização do continue e do break. No primeiro caso um valor negativo que seja lido a partir da função leProximo será ignorado e portanto, não

acumulado na variável soma. No segundo caso um valor negativo encerra o loop.

...

while (soma < 1000) {

leProximo(valor);

if (valor<0) continue;

soma+=valor;

}

...

...

while (soma < 1000) {

leProximo(valor);

if (valor<0) break;

soma+=valor;

}

...

https://www.pucsp.br/graduacao/ciencia-da-computacao

Estruturas de Controle

16:26 49

Laços Controlados Logicamente

Page 50: Prof. Julio Arakaki (jarakaki@pucsp.br)jarakaki/lic/JaSouPUC.pdf · Seleção Múltipla De acordo com o resultado da expressão (inteira), uma das instruções será ... sua execução

Computação

Exercícios1. Construa um programa que calcule o resultado da seguinte série:

y = 1/x +1/(x+1) + 1/(x+2) + 1/(x+3) + ... + 1/(x+1000)

x deverá ser fornecido pelo usuário.

2. Altere o programa 2 do slide 36 de tal forma que sejam lidas duas notas de cada aluno,calculadas as médias de cada aluno e no final seja apresentada a média geral da sala. Aquantidade de alunos deverá ser fornecida pelo usuário.

3. (desafio) Um determinado material radioativo perde metade de sua massa a cada 50segundos. Dada a massa inicial, em gramas, fazer um programa em C que calcule o temponecessário para que essa massa se torne menor que 0,5 grama. O programa em C deveescrever a massa inicial, a massa final e o tempo calculado em horas, minutos e segundos.

https://www.pucsp.br/graduacao/ciencia-da-computacao 5016:26