Buscar

Programacao C - Aula 02

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Aula 2
PROFESSOR: MARCELO TAKASHI UEMURA
DISCIPLINA: INTRODUÇÃO À PROGRAMAÇÃO ESTRUTURADA EM C - ARA0017
O PENSAMENTO ESTRUTURADO APLICADO À INFORMÁTICA; 
REPRESENTAÇÃO FORMAL DA SOLUÇÃO DE PROBLEMAS DE INFORMÁTICA UTILIZANDO LINGUAGEM NATURAL, FLUXOGRAMAS E LINGUAGEM DE PROGRAMAÇÃO 
Objetivos da Aula
Apresentar as diferentes formas de expressar soluções computacionais baseadas em fluxogramas, algoritmos escritos em linguagem natural e em linguagem de programação; 
Situação problema
Tem-se em mãos duas jarras: uma com capacidade para quatro litros; e outra, com capacidade para três litros. 
As jarras não possuem marcações intermediárias, de forma que, se qualquer uma das jarras não estiver completamente cheia, não será possível saber quanta água haverá dentro dela.
Existe uma torneira disponível para encher as jarras e um ralo que permite que a água seja jogada fora. As únicas instruções disponíveis são: 
a. Encher completamente uma jarra, utilizando a torneira; 
b. Passar a água de uma jarra para outra; 
c. Esvaziar completamente uma jarra, jogando a água que estiver dentro dela no ralo. 
O objetivo é indicar como as jarras devem ser manipuladas, de modo que, ao final da manipulação, a jarra com capacidade para quatro litros de tenha exatamente dois litros de água.
Ciclo de obtenção de um Programa
Ciclo de obtenção de um Programa
Entender
Planejar
Executar
Verificar
Interpretação do enunciado do problema e das questões envolvidas
Escolha da linguagem; e Estruturação da solução
Construção do algoritmo
Execução em um interpretador ou compilador
Etapas para construção de um algoritmo
Representação de Algoritmos
Linguagem Natural
Escrever: Olá, como vai, tudo bem?
Ler: “resposta”
Escrever: Seja bem-vindo, é um prazer conhecê-lo.
Linguagem Natural
Depende diretamente de quem está escrevendo e de quem está lendo;
Necessário clareza;
Ambiguidade léxica.
Representação de Algoritmos
Linguagem Natural
Ingredientes:
2 xícaras (chá) de açúcar
3 xícaras (chá) de farinha de trigo
4 colheres (sopa) de margarina bem cheias
3 ovos
1 1/2 xícara (chá) de leite aproximadamente
	1 colher (sopa) de fermento em pó bem cheia
Modo de preparo:
Bata as claras em neve.
Reserve.
Bata bem as gemas com a margarina e o açúcar.
Acrescente o leite e farinha aos poucos sem parar de bater.
Por último, agregue as claras em neve e o fermento.
Coloque em forma grande de furo central untada e enfarinhada.
Pré-aqueça o forno a 180 C por 10 minutos.
Asse por 40 minutos.
Representação de Algoritmos
Linguagem Natural
‹#›
1 – Utilizar frases curtas;
2 – Usar somente um verbo em cada frase, sempre no infinitivo ou imperativo;
3 – Evitar palavras com ambíguas;
4 – Detalhar todas as etapas.
Representação de Algoritmos
Outras formas de representar algoritmos
Fluxogramas – descrição gráfica ou linguagem gráfica
Pseudocódigo – descrição textual que se aproxima da linguagem natural
Fluxograma
É uma forma universal de representação, pois se utiliza de figuras geométricas para ilustrar passos a serem seguidos para a resolução de problemas
Fluxograma ISO 5807
INÍCIO
Acordar
Escovar os dentes
Preparar e tomar café
Preparar roupas e lanches para o clube 
Há tarefas a fazer? 
Verificar programação do cinema
Ir ao shopping
Fazer Refeição
Ir ao Cinema
Ir ao clube
Ir à piscina
Fazer refeição
Praticar esportes
Voltar pra casa
Fazer tarefas
Tomar banho
Fazer Refeição
Assistir TV
Dormir
Dia de sol?
FIM
Não
Não
Sim
Sim
Fluxogramas
Fluxogramas
Exemplo: Algoritmo de troca de lâmpada com teste para 10 soquetes com repetição
Exemplo Fluxograma
Pseudocódigo
Código de escrita que :
utiliza uma combinação de termos convencionais para indicar as instruções do programa
os termos utilizados são usualmente um misto de palavras da nossa linguagem natural com palavras e notações típicas das linguagens de programação.
Características:
Não tem um notação standard
Tem maior proximidade com as linguagens de programação permitindo diminuir o esforço gasto no desenvolvimento/codificação
Pseudocódigo
Início
	Escrever (“Introduza dois valores”)
	Ler (valor1)
	Ler (valor2)
	SE valor 1 > valor 2 ENTÃO
		Escrever (valor 1, “é maior”)
	SENÃO
		SE valor 1 < valor 2 ENTÃO
			Escrever (valor 2, “é maior”)
		SENÃO
			Escrever (“valores iguais”)
Fim
Pseudocódigo (Pseudolinguagem)
Facilita descrever o algoritmo antes de passá-lo para uma linguagem de programação;
Descrição do algoritmo, menos rigorosa que na linguagem de programação (código fonte)
Fácil de entender e fácil de codificar depois
Intermediária: linguagem natural – linguagem de programação
Independente da linguagem de programação
Abstrai os problemas da linguagem natural;
Facilita o aprendizado da lógica de algoritmos;
Focada no aprendizado e não na estrutura.
Semântica 🡪 definição do comando.
Sintaxe 🡪 como se escreve um comando.
Pseudo-código (Pseudolinguagem)
Exemplo pseudocódigo
Gere um pseudocódigo que aplique um desconto de 30% sobre o valor de um produto, recebido como entrada, e retorne o resultado da manipulação na saída padrão. 
Exemplo pseudocódigo
Construa o pseudocódigo de um algoritmo capaz de ler dois valores inteiros armazenando-os em variáveis distintas, após o armazenamento o conteúdo das variáveis deve ser trocado e, ao termino do processo, o algoritmo deve retornar na saída padrão o novo conteúdo de cada uma das variáveis .
Atividade Aura (Questão 1)
Um algoritmo pode ser escrito utilizando diferentes linguagens. Relacione o tipo de algoritmo com a respectiva descrição: 
A - Linguagem Natural 
B - Linguagem Gráfica 
C - Pseudolinguagens 
1 - Foi criada com o objetivo de facilitar o aprendizado da lógica de algoritmos ou lógica de programação, devendo o aprendiz focar na resolução do problema ou lógica do problema, e não na estrutura e formalismo de como representá-lo de forma clara e sem ambiguidade. 
2 - A escolha das palavras e termos utilizados dependem diretamente da pessoa que está escrevendo e da compreensão de quem lê. Assim, uma mesma palavra pode ter diversos significados. 
3 - Baseadas em imagens e esquemas, de forma a tentar facilitar a visualização e o entendimento das etapas e processos. 
Alternativas: 
A) A1, B2, C3 
B) A2, B3, C1 
C) A3, B2, C1 
D) A1, B3, C2 
E) A2, B1, C3 
Atividade Aura (Questão 2)
A cerca de Fluxogramas considere as seguintes afirmativas: 
I - É um diagrama padronizado utilizado para representações esquemáticas. 
II - É baseado na norma ISO 5807, que os padroniza, facilitando seu aprendizado e compreensão.
III - É composto basicamente de figuras geométricas que representam as possíveis diferentes etapas de um processo, conectadas por setas que indicam a sequência das etapas e suas transições. 
Pode-se dizer que: 
Alternativas: 
A) Apenas as afirmativas I e II estão certas 
B) Apenas as afirmativas I e III estão certas 
C) Apenas as afirmativas II e III estão certas 
D) Todas as afirmativas estão certas 
E) Nenhuma afirmativa está certa.
Algoritmo escrito em uma linguagem de computador (linguagem de programação - C, Pascal, COBOL, Fortran, Basic, Java, etc.)
Interpretado e executado por um computador
Interpretação rigorosa, exata, do computador ⇒
 ⇒ escrita do algoritmo na linguagem de prog. tem que seguir regras mais rigorosas
Programa
‹#›
A abordagem Estruturada 
Linguagens de Programação Estruturadas => Abordagem Estruturada
Abordagem Estruturada - abordagem sistemática da construção de SW que os princípios como:
a separação das definições de dados e de programa
a concepção descendente ou “Top-Down” 
e refinamento progressivo
=> A separação das definições de dados e de programa
Os programas surgem com duas partes principais bem diferenciadas:
Parte declarativa: declaram-se os tipos de dados e variáveis a utilizar no corpo das instruções do programa
Parte operativa: o corpo de instruções comque se pretende concretizar as operações e atingir os objectivos pretendidos
A abordagem Estruturada 
=> A concepção descendente ou “Top-Down” 
É um método de abordagem dos problemas que se decompondo o problema original em problemas particulares, em níveis sucessivamente mais concretos até ao pormenor desejado
=> Refinamento Progressivo 
É um complemento lógico da abordagem descendente
Consiste em ir concretizando, cada vez com mais detalhe, com maior exactidãoe perfeição, os passos sucessivos do projeto em questão
Muito útil no desenvolvimento de pseudocódigo
Abordagem Modular – apresenta semelhanças com a abordagem estruturada, consistindo na decomposição de um problema complexo nos seus componentes, aos quais se chamam módulos 
Os módulos são unidades com alguma autonomia, mas também relacionáveis entre si, pois podem-se integrar (ligar) num todo
Reutilização de bibliotecas de módulos
Componentes fundamentais de um programa
Estruturação e componentes fundamentais de um programa
“A estruturação de programas subdivide-se na estruturação das suas acções e na estruturação dos seus dados.A escolha destas estruturas é o problema fundamental da programação estruturada. Da escolha criteriosa destas estruturas depende que o programa seja eficaz, compreensível, robusto, modular e versátil.
A sintaxe de uma linguagem define determinados construtores, de entre os quais os mais importantes são as expressões e os comandos
Uma expressão é uma fórmula ou regra de computação que especifica um valor ou um resultado. Uma espressão consiste em operandos e operadores.
Os operandos são constantes, variáveis, ou valores gerados por funções.
Os operadores são usualmente classificados em monádicos ou unários (operam sobre um único operador) e diádicos (operam sobre dois operadores).
Um comando é uma formula que especifica uma acção que o computador deve executar para produzir certo efeito”
								Coelho, Helder
Programa = Dados + Instruções básicas + Expressões + Estruturas de Controle + Subprogramas
Atividade Verificadora de Aprendizagem
Utilizar a lista de exercícios disponibilizada no Anexo da Aula 2 para que os alunos exercitem a solução dos problemas usando as 3 metodologias apresentadas. A verificação deverá ocorrer com a geração e disponibilização do gabarito pelo docente, esclarecendo apenas as eventuais dúvidas. 
Leitura Específica
[1] ANDRADE, Mairum C. Algoritmos. Rio de Janeiro: SESES, 2014. Páginas 16 a 29. Disponível em: http://repositorio.savaestacio.com.br/site/index.html#/objeto/detalhes/377757CE-7C5A438D-A742-482DDDC54D12
Aprenda+
Alguns sites com jogos de raciocínio lógico e que podem ser usados como apoio para a aula: 
1. Jogo das Jarras de água, Disponível em: https://www.novelgames.com/en/jars/ 
2. Jogo de travessia do rio, disponível em: https://rachacuca.com.br/jogos/o-lobo-e-aovelha/ 
3. Jogo da velha, disponível em: http://www.cardiol.br/jogos/velha/ 
4. Jogo do Teste de Einstein, disponível em: http://rachacuca.com.br/teste-de-einstein/

Outros materiais