Lógica de Programação I

Slides:



Advertisements
Apresentações semelhantes
Fundamentos de Programação 1 Slides 7 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Funções” 1.
Advertisements

Disciplina:PROA3V José Henrique Verhalem e Renan Tenório Professor: Alexandre Cassimiro Novembro 2015.
Linguagem de Programação – Aula 03 Prof. Me. Ronnison Reges Vidal.
1 Aula 11 Matrizes Prof. Filipe Mutz. Matrizes São estruturas de dados usadas para armazenar informações multidimensionais (que possuem mais de uma dimensão).
Algoritmos e Estruturas de Dados I
RODOLFO SOARES TEIXEIRA OBMEP NA ESCOLA
Algoritmos e Estruturas de Dados I
Algoritmo e Lógica Programação Vetores e Matrizes
CÁLCULO NUMÉRICO Aula 2 – Introdução ao Programa de Computação Numérica (PCN) e Teoria dos Erros.
Algoritmo e Estrutura de Dados I
Introdução a Algoritmos
Programação em C Aula 8.
Recursão.
Algoritmo de Euclides para o cálculo do mdc
Fundamentos de Programação 1
RODOLFO SOARES TEIXEIRA OBMEP NA ESCOLA
Profa. Mercedes Gonzales Márquez
Comandos da Linguagem C
Estruturas de Repetição
Linguagem C Para programadores Python
Algoritmos e Estruturas de Dados I
Módulo I Capítulo 3: Fluxo de Código e Operador Condicional
Prof. Wellington Franco Estrutura de um Programa Usando o VisuAlg
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
Estrutura de decisão Neste tipo de estrutura o fluxo de instruções a ser seguido é escolhido em função do resultado da avaliação de uma condição. Uma.
Programação de Computadores I – Arquivos
Algoritmos e Estrutura de Dados I
Estruturas de Dados Vetores.
Algoritmos e Fluxogramas
Equações do 2º Grau ax2 + bx + c = 0, a ≠ 0.
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
FUNDAMENTO DE PROGRAMAÇÃO
IP – Repetições Prof. Eduardo Falcão.
UNIDADE 7 Tipos estruturados
Dilvan Moreira (baseado no livro Big Java e T. Munzner)
Algoritmos e Programação MC102
Estrutura de Repetição
Aula 22 Modularização 22/10/08.
CES-11 ALGORITMOS E ESTRUTURAS DE DADOS Aulas Práticas – 2017
MULTIPLICAÇÃO Números Decimais.
Cálculo combinatório.
Complexidade de Algoritmos
LÓGICA DE PROGRAMAÇÃO Estruturas de Decisão
Algoritmos Aula 8 Mairum Ceoldo Andrade.
Agenda O que é Operadores Relacionais Operadores Lógicos
Linguagem de Programação II
Fundamentos de Programação 1
Variância e Desvio padrão
Métodos Quantitativos
Fundamentos de Programação 1
Algoritmos Prof.: Carlos Alberto
Diagrama de Atividades
Problemas de Transporte (Redes)
Introdução à lógica de programação utilizando Scratch Aula 3
ALGORITMOS.
ALGORITMOS.
Introdução à lógica de programação utilizando Scratch Aula 4
Python: Comandos Básicos
Vetores.
Introdução a progrmação Comandos condicionais: if e switch
Problemas de Transporte (Redes)
Prof. Elisson de Andrade
Plataforma de Simulados SAE Digital
RESULUÇÃO DOS EXERCÍCIOS E
Funções de Duas ou Mais Variáveis
Distribuição Binomial
MATEMÁTICA.
MATEMÁTICA.
Aula 3 Professores: Conteúdo: Dante Corbucci Filho
Transcrição da apresentação:

Lógica de Programação I Gilson de Souza Carvalho gaucho.gilson@hotmail.com Produzindo conhecimento, transformando vidas www.posse.ueg.br

Lógica de Programação I Comandos de Repetição Comandos de repetição encadeados Apesar de seguir o mesmo padrão de encadeamento de outros comandos já vistos, a utilização de comandos de repetição encadeados geralmente causa uma certa dificuldade para o seu acompanhamento à primeira vista. A estrutura do algoritmo que contém laços encadeados segue: Produzindo conhecimento, transformando vidas www.posse.ueg.br

Lógica de Programação I Comandos de Repetição { <declaração de variáveis> while <valor boolean> ... while <valor boolean > } //final do bloco while interno} } //final do bloco while externo} <continuação do algoritmo> } Produzindo conhecimento, transformando vidas www.posse.ueg.br

Lógica de Programação I Comandos de Repetição De fato, podemos ter tantos laços encadeados quanto precisarmos. E ainda podemos tê-los combinados com comandos de decisão e assim por diante. Até agora, usamos os laços para fazer operações sobre um conjunto de elementos. Por exemplo, no caso da soma dos números primos, tínhamos que executar um bloco de condição para cada possível divisor do número em questão. No caso da soma de 100 números, os números entrados eram acumulados dentro do laço, repetindo-se o processo para cada número. Produzindo conhecimento, transformando vidas www.posse.ueg.br

Lógica de Programação I Comandos de Repetição A utilização de laços encadeados pode ser necessária quando precisamos fazer uma operação repetitiva para cada elemento dentro de um conjunto. Imaginemos que precisássemos calcular a média das notas de uma classe. Até aí,um único laço seria suficiente. Porém, imaginemos agora que precisássemos calcular a média das notas de todas as turmas de uma escola. As turmas são um conjunto. As notas dos alunos dentro de cada turma são outro conjunto. Para cada conjunto, precisaríamos de um laço, nesse caso, dois laços encadeados. E if precisássemos ainda fazer o cálculo para todas as escolas de uma cidade. Nesse caso precisaríamos de três laços encadeados (escolas/turmas/alunos). Produzindo conhecimento, transformando vidas www.posse.ueg.br

Lógica de Programação I Comandos de Repetição Calcular a média das turmas de uma escola Faça um algoritmo que calcule a média de todas as turmas de uma escola. Considere como entradas o número de turmas e o número de alunos de cada turma. A média de cada turma deve ser apresentada, além da média geral, que será o resultado da média das turmas. Produzindo conhecimento, transformando vidas www.posse.ueg.br

Lógica de Programação I Comandos de Repetição Um detalhe importante de if notar na resolução desse tipo de algoritmo é o fato de os laços geralmente terem condições diferentes e independentes. Podemos até mesmo resolver um exercício de cada vez, abstraindo um dos laços e if concentrando no segundo. Vejamos, então, a solução do problema para apenas uma turma, para depois resolvermos o problema de todas as turmas: Produzindo conhecimento, transformando vidas www.posse.ueg.br

Lógica de Programação I Comandos de Repetição #include <stdio.h> #include <stdlib.h> #include <locale.h> int main() { setlocale(LC_ALL,"portuguese"); int i, qt_aluno; float med_aluno, tot_turma; i = qt_aluno = med_aluno = tot_turma = 0; ... Produzindo conhecimento, transformando vidas www.posse.ueg.br

Lógica de Programação I Comandos de Repetição ... printf("Informe a quantidade de alunos: "); scanf("%d", &qt_aluno); while (i < qt_aluno) { printf("Informe a média do %dº aluno: ", i+1); scanf("%f", &med_aluno); tot_turma += med_aluno; i++; } printf("\nA média da turma é: %.2f\n", tot_turma/i); return 0; Produzindo conhecimento, transformando vidas www.posse.ueg.br

Lógica de Programação I Comandos de Repetição LP1_18 Produzindo conhecimento, transformando vidas www.posse.ueg.br

Lógica de Programação I Comandos de Repetição Agora, vamos resolver o que seria o cálculo das médias de uma escola, considerando que temos as médias de cada turma já preparadas pelo usuário. Produzindo conhecimento, transformando vidas www.posse.ueg.br

Lógica de Programação I Comandos de Repetição #include <stdio.h> #include <stdlib.h> #include <locale.h> int main() { setlocale(LC_ALL,"portuguese"); int j, qt_turma; float med_turma, tot_turma; j = qt_turma = med_turma = tot_turma = 0; ... Produzindo conhecimento, transformando vidas www.posse.ueg.br

Lógica de Programação I Comandos de Repetição ... printf("Informe a quantidade de turmas: "); scanf("%d", &qt_turma); while (j < qt_turma) { printf("Informe a média da %dª turma: ", j+1); scanf("%f", &med_turma); tot_turma += med_turma; j++; } printf("\nA média da escola é: %.2f\n", tot_turma/j); return 0; Produzindo conhecimento, transformando vidas www.posse.ueg.br

Lógica de Programação I Comandos de Repetição LP1_19 Produzindo conhecimento, transformando vidas www.posse.ueg.br

Lógica de Programação I Comandos de Repetição Bem, resolvemos as duas partes do algoritmo. Entretanto, a parte da média das escolas conta com uma situação que não temos: a média de cada turma não é conhecida de antemão pelo usuários, a não ser que estes executassem o primeiro algoritmo, anotassem num papel o resultado de cada turma e executassem o segundo algoritmo para passar esses valores. É claro que esta solução não é razoável. Produzindo conhecimento, transformando vidas www.posse.ueg.br

Lógica de Programação I Comandos de Repetição De fato, o que precisa ser feito é substituir o trecho do segundo algoritmo em que o usuário entra com as médias das turmas pelo primeiro algoritmo, que é quem calcula a média de cada turma. Atenção especial deve ser dada ao possível conflito de variáveis. Por exemplo, os contadores utilizados nos 2 algoritmos tratam de elementos diferentes (alunos e turmas, respectivamente) e devem ser tratados como variáveis independentes... Produzindo conhecimento, transformando vidas www.posse.ueg.br

Lógica de Programação I Comandos de Repetição #include <stdio.h> #include <stdlib.h> #include <locale.h> int main() { setlocale(LC_ALL,"portuguese"); int i, j, qt_aluno, qt_turma; float med_aluno, tot_turma, med_turma, tot_escola, med_escola; i = j = qt_aluno = qt_turma = 0; med_aluno = tot_turma = med_turma = tot_escola = med_escola = 0; printf("Informe a quantidade de turmas: "); scanf("%d", &qt_turma); ... Produzindo conhecimento, transformando vidas www.posse.ueg.br

Lógica de Programação I Comandos de Repetição ... while (j < qt_turma) { //Inicia o laço para cada turma da escola printf("\nInforme a quantidade de alunos da %dª turma: ", j+1); scanf("%d", &qt_aluno); i = tot_turma = 0; //iniciar as variáveis para uma nova turma while (i < qt_aluno) { //Inicia o laço para cada aluno da turma printf("Informe a média do %dº aluno: ", i+1); scanf("%f", &med_aluno); tot_turma += med_aluno; //Totaliza (soma) a media de cada aluno i++; //Incrementa +1 a cada laço do aluno } med_turma = tot_turma / i; //Calcula media da turma printf("\nA média da turma é: %.2f\n", med_turma); tot_escola += med_turma; //Totaliza (soma) a media de cada turma j++; //Incrementa +1 a cada laço da turma Produzindo conhecimento, transformando vidas www.posse.ueg.br

Lógica de Programação I Comandos de Repetição ... med_escola = tot_escola / j; //Calcula média da escola printf("\nA média da escola é: %.2f\n", med_escola); return 0; } Produzindo conhecimento, transformando vidas www.posse.ueg.br

Lógica de Programação I Comandos de Repetição LP1_20 Produzindo conhecimento, transformando vidas www.posse.ueg.br

Lógica de Programação I Comandos de Repetição EXERCICIO: Faça um algoritmo que calcule a media de todas as escolas de uma cidade. Cada escola tem diversas turmas. Considere como entrada o numero de escolas, o numero de turmas de cada escola e o numero de alunos de cada turma. A media de cada escola deve ser apresentada alem da media geral de todas as escolas da cidade. Produzindo conhecimento, transformando vidas www.posse.ueg.br

Lógica de Programação I Produzindo conhecimento, transformando vidas www.posse.ueg.br