Buscar

SLIDES AULA 1

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

Prof. MSc Orlei José Pombeiro 
 
1 
 
Graduação Análise de 
Sistemas 
 
Estrutura de Dados 
Aula 01 
 
 
 
 
 
 
Orlei José Pombeiro 
 
 
 
Prof. MSc Orlei José Pombeiro 
 
2 
 
 
 
Prof. MSc Orlei José Pombeiro 
 
3 
Conversa Inicial 
 Nesta aula vamos abordar o conceito de Estrutura de Controle. Muito utilizado em 
programação, as Estruturas de Controle podem ser divididas em dois tipos: Seleção e Repetição. 
Similar a situação de nosso dia a dia onde tomamos várias decisões, muitas sem pensar, quando 
desenvolvemos sistemas constantemente nos deparamos com momentos que temos que tomar 
uma decisão para que lado devemos ir. Decisões estas em programação baseadas sempre em 
um conceito lógico “Se For Verdadeiro Faça ... ” ou “Se For Falso Faça .... ”. Assim como quando 
falamos em repetir tarefas, onde utilizamos o conceito de repetir uma determinada tarefa 
quantas vezes forem necessárias, também baseada em uma decisão lógica, “Enquanto For 
Verdadeiro Faça ... ”. 
Contextualização 
 Vamos falar primeiramente de Estruturas de Decisão. Na literatura é possível encontrar 
referência a: Estrutura de Controle Simples; Estrutura de Controle Composta; Estrutura de 
Decisão; Estrutura de Seleção. Todas estas nomenclaturas são referência para a mesma 
estrutura, para os mesmos comandos da linguagem. 
A linguagem C comporta dois tipos de Estrutura de Decisão: “if” e ”switch”. Como todas 
as linguagens de programação foram desenvolvidas em inglês, todos os comandos utilizam 
palavras em inglês para referencias as ações nos programas e em sua quase totalidade em letras 
minúsculas. 
Outro tipo de estrutura muito utilizada em programação é a de Repetição. Utilizamos 
este tipo de estrutura quando desejamos repetir uma determinada tarefa por um número “N” 
vezes. Dizemos que criamos um “loop” para executar a tarefa repetidas vezes. Podemos 
encontrar 3 tipos de Estruturas de Repetição “For”, “While” e “Do While”. 
Na literatura é possível encontrar as seguintes nomenclaturas para estas estruturas: 
while -> Enquanto; for -> Para; do while -> Repita. 
 
 
 
Prof. MSc Orlei José Pombeiro 
 
4 
Tema 1 - If 
 Quando falamos em colocar uma estrutura de decisão no programa, dizemos 
simplesmente “coloque um SE” ou “coloque um IF”. A seguir está a comparação das linhas de 
comando em Português Estruturado e na Linguagem de Programação: 
 
SE ( Condição Lógica é Verdadeira ) if ( 7 > 4 ) 
 Execute tarefa A, B, C Execute tarefa A, B, C 
SENÃO For Verdadeira else 
 Execute tarefa E,F, G Execute tarefa E,F, G 
 
 A estrutura “IF” pode ser descrita como uma estrutura simples, onde somente 
executaremos uma determinada ação se a condição for verdadeira, caso contrário não será 
executado nada. 
Vamos observar o algoritmo. É solicitado que usuário informe sua idade, caso seja 16 ou 
mais, o sistema informa que ele pode votar e na sequencia aparece na tela a palavra “Obrigado”. 
Caso ele tenha 15 anos ou menos, somente a palavra “Obrigado” aparece na tela. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
NÃO
SIM 
SIM 
Início 
Informe sua idade 
Ler idade 
Se 
 idade 
> 15 
Você já pode 
votar 
Obrigado 
Fim 
#include <stdio.h> 
#include <stdlib.h> 
 
void main(){ 
 int x = 0; 
 
 printf( "Informe sua idade: " ); 
 scanf_s( "%d", &x ); 
 
 if (x > 15) 
 printf( "Você já pode votar\n" ); 
 
 printf( "Obrigado\n" ); 
 system( "pause" ); 
} 
 
 
 
Prof. MSc Orlei José Pombeiro 
 
5 
 
 Sobre este exemplo, podemos alterá-lo para uma “Estrutura de Decisão Composta”. Ou 
seja, se a condição for “Verdadeira”, informe que o usuário pode votar, mas se for “Falsa”, 
informe que ele ainda não tem idade para votar. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Outra situação que temos aqui é com relação as “Chaves - { }”. Eles definem a dimensão 
de um bloco. Quando temos apenas uma linha de comanda a ser executada ( printf(“Você já 
pode votar”); ), não é necessário colocar as chaves, por que o compilador do programa entende 
que será apenas uma linha. Mas se temos mais de uma linha de comando, somos obrigados a 
colocar as chaves, deste modo serão executadas todas as linhas de comando que estiverem 
dentro das chaves. Veja o algoritmo anterior alterado. 
 
#include <stdio.h> 
#include <stdlib.h> 
 
void main() { 
 int x = 0; 
 
 printf( "Informe sua idade: " ); 
 scanf_s( "%d", &x ); 
 
 if (x > 15) 
 printf( "Você já pode votar\n" ); 
 else 
 printf( "Você não tem idade para 
participar das eleições\n" ); 
 
 printf( "Obrigado\n" ); 
 system( "pause" ); 
} 
 
NÃO
SIM 
SIM 
Início 
Informe sua idade 
Ler idade 
Se 
 idade 
> 15 
Você já pode 
votar 
Obrigado 
Fim 
Você não tem idade para 
participar das eleições 
 
 
Prof. MSc Orlei José Pombeiro 
 
6 
 
#include <stdio.h> 
#include <stdlib.h> 
 
void main() { 
 int x=0; 
 
 printf( "Informe sua idade: " ); 
 scanf_s( "%d", &x ); 
 
 if (x > 15){ 
 printf( "Você já pode votar\n" ); 
 printf( "Caso ainda não possua título procure o TRE.\n" ); 
 }else{ 
 printf( "Você não tem idade para participar das eleições.\n" ); 
 } 
 printf( "Obrigado\n" ); 
 system( "pause" ); 
} 
 
 
 Temos também o chamado “if Aninhados”, onde utilizamos uma sequência de 
estruturas de decisão para chegar a uma ou ‘N’ conclusões de uma tarefa. Acompanhe o 
algoritmo a seguir. Após informar a idade, o algoritmo verifica se usuário tem mais de 15 anos, 
neste caso ele já pode votar e o algoritmo continua. Se a idade também for maior que 18, 
informar que além de votar ele também pode ser votado, na sequencia verifica se é um usuário 
que está liberado da obrigatoriedade da votação por já ter mais de 64 anos. Ou seja, podemos 
ter dentro de estruturas, outras estruturas, tantas quanto forem necessárias. Para este exemplo 
utilizamos uma única variável “X”, como comparativo, mas é possível utilizar qualquer 
comparativo nos “if”. 
 
 
 
 
 
 
 
 
 
 
 
 
 
Prof. MSc Orlei José Pombeiro 
 
7 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
NÃO
SIM 
SIM 
NÃO
SIM 
SIM 
NÃO
SIM 
SIM 
NÃO
SIM 
SIM 
Início 
Informe sua idade e se vai 
votar nas próximas eleições 
Ler idade 
Ler opção 
Se 
 idade 
> 15 
Você Já pode 
votar 
Obrigado 
Fim 
Você não tem idade para 
participar das eleições 
Se 
Opção 
= ‘S’ 
idade 
> 15 
Se 
 idade 
> 18 
Você já pode ser 
candidato nas eleições 
Se 
 idade 
> 64 
Você esta liberado da 
obrigatoriedade de votar 
 
 
Prof. MSc Orlei José Pombeiro 
 
8 
 
#include <stdio.h> 
#include <stdlib.h> 
 
void main() { 
 int x = 0; 
 char op = ' ', c=' '; 
 
 printf( "Informe sua idade: " ); 
 scanf_s( "%d", &x ); 
 //sempre que usar o scanf/scanf_s mais de uma vez limpe o buffer de 
teclado 
 while ((c = getchar()) != '\n' && c != EOF) {} 
 printf( "Digite s se for votar nas próximas eleições\n ou qualquer outro 
caractere para não votar:" ); 
 scanf_s( "%c", &op ); 
 while ((c = getchar()) != '\n' && c != EOF) {} 
 
 if ((op == 's') || (op == 'S')){ 
 if (x > 15){ 
 printf( "Você já pode votar" ); 
 if( x >= 18 ){ 
 printf( "Você já pode ser candidato nas eleições.\n" 
); 
 if( x > 64 ) { 
 printf( "Você está liberado da obrigatoriedade 
de votar.\n" ); 
 } 
 } 
 } else 
 { 
 printf( "Você não tem idade para participar das eleições.\n" 
);} 
 } 
 printf( "Obrigado\n" ); 
 system( "pause" ); 
} 
 
 
 
 
 
Prof. MSc Orlei José Pombeiro 
 
9 
Tema 2 - Switch 
 Outra estrutura de decisão é o “switch”. Similar ao “if Aninhado”, mas com a diferença 
que todas as comparações devem ser realizadas sob a ótica de uma única variável. Veja a 
estrutura do switch. 
ESCOLHA (Valor Informado ) 
{ CASO SEJA “Verde”: Execute tarefa A; 
 CASO SEJA “Amarelo”: Execute tarefa B; 
 CASO SEJA “Azul”: Execute tarefa C; 
CASO SEJA “Branco”: Execute tarefa D; 
} 
 
switch ( cor ) 
{ CASE “Verde”: Execute tarefa A; break; 
CASE “Amarelo”: Execute tarefa B; break; 
CASE “Azul”: Execute tarefa C; break; 
CASE “Branco”: Execute tarefa D; break; 
} 
 
 Para o caso de uma possível eleição de condomínio fictício com 5 candidatos. Veja como 
ficaria o algoritmo de votação utilizando as duas estruturas “if” e “switch”. 
 
Exemplo utilizando “if” 
 
#include <stdio.h> 
#include <stdlib.h> 
 
void main() { 
 int x = 0; 
 
 printf( "Informe o número de seu candidato: " ); 
 scanf_s( "%d", &x ); 
 
 if (x == 1) { 
 printf( "Seu voto foi computado para: Zé Carioca\n" ); 
 } else if( x == 2 ){ 
 printf( "Seu voto foi computado para: Ciclano Albuquerque\n" ); 
 } else if( x == 3 ){ 
 printf( "Seu voto foi computado para: Fulano e silva\n" ); 
 } else if( x == 4 ){ 
 printf( "Seu voto foi computado para: José Colmeia\n" ); 
 } else if( x == 5 ){ 
 printf( "Seu voto foi computado para: Seu Manoel do 505\n" ); 
 } else{ 
 printf( "Voto inválido\n" ); 
 } 
 system( "pause" ); 
 
} 
 
 
 
Prof. MSc Orlei José Pombeiro 
 
10 
 
Exemplo utilizando “switch” 
 
 O algoritmo a seguir tem o mesmo resultado do anterior, com a diferença que está 
sendo utilizado o comando “switch” ou invés do “if”. Para o caso do “if”, para cada possível 
situação deve haver uma comparação, na utilização do “switch”, a variável de comparação é 
colocada em referência uma única vez, e seus possíveis valores são analisados pelos chamados 
“case”. Serão executados os comandos referentes ao respectivo valor apontado em um dos 
cases. Caso não haja nenhuma ocorrência, serão executados os comandos que estiverem no 
“default”, para o exemplo a seguir, significa que será executado o comando que está no default, 
caso o valor digitado esteja a baixo de 1 ou acima de 5. Assim como o “else” é opcional no “if”, 
o “dafault” é opcional no “switch”. 
 
 
#include <stdio.h> 
#include <stdlib.h> 
 
void main() { 
 int x = 0 ; 
 
 printf( "Informe o número de seu candidato: " ); 
 scanf_s( "%d", &x ); 
 
 switch (x) { 
 case 1: 
 printf( "Seu voto foi computado para: Zé Carioca\n" ); 
 break; 
 case 2: 
 printf( "Seu voto foi computado para: Ciclano 
Albuquerque\n"); 
 break; 
 case 3: 
 printf( "Seu voto foi computado para: Fulano e silva\n" ); 
 break; 
 case 4: 
 printf( "Seu voto foi computado para: José Colmeia\n" ); 
 break; 
 case 5: 
 printf( "Seu voto foi computado para: Seu Manoel do 505\n" ); 
 break; 
 default: 
 printf( "Voto inválido\n" ); 
 break; 
 } 
 system( "pause" ); 
} 
 
 
 
 
 
 
Prof. MSc Orlei José Pombeiro 
 
11 
Tema 3 - While 
A estrutura “while” (em português: Enquanto), vai ficar executando uma determinada 
tarefa enquanto a condição for verdadeira. Deste modo, o número de vezes que as tarefas serão 
executadas, será determinada pelo momento da alteração da condição lógica. Duas 
considerações importantes sobre esta estrutura. Primeiro, os comandos internos ao “while”, 
somente vão ser executados se a Condição Lógica for verdadeira, ou seja, se a execução do 
programa chegar a esta linha e a condição for Falsa, os comandos não serão executados 
nenhuma vez. Segundo, dentro da estrutura while, deve haver um meio de alterar a condição 
Lógica da continuação do loop, pois se não houver vai ocorrer o que chamamos de Loop Infinito, 
ou seja, não vai acabar nunca. Veja a estrutura: 
 qtd = 0; 
Enquanto ( Condição Lógica é Verdadeira ) while ( qtd < 10 ) 
{ Execute tarefa A; { a += 3; 
Execute tarefa B; b = b * a; 
Ecexute tarefa C; qtd++; 
 } } 
 
 
Tema 4 - For 
Diferentemente da estrutura while, a estrutura de repetição “for” (em português: Para), 
já possui em sua linha de sintaxe os comandos necessários para a sua execução, ou seja, 
inicialização, condição de fim e incremento. Por este motivo é a mais utilizada. É dada a 
preferência na utilização da estrutura for quando já temos definido o número de vezes que as 
tarefas deverão ser repetidas. Na linha de declaração do “for”, a variável ‘qtd’ é inicializada com 
o valor ‘0’ (qtd=0), a cada loop ela é incrementada de uma unidade (qtd++) e é verificada a sua 
condição de finalização (qtd < 10). Este loop ocorrerá 10 vezes. 
Para qtd de 0 até 9 faça for (qtd=0; qtd < 10; qtd++) 
{ Execute tarefa A; { a += 3; 
Execute tarefa B; b = b * a; 
Execute tarefa C; 
} } 
 
 
 
 
 
Prof. MSc Orlei José Pombeiro 
 
12 
Tema 5 - Do while 
A estrutura “do while”, é similar a estrutura “while”, com uma diferença: no while o 
loop pode ou não ocorrer devido a condição inicial, já no do while, os comandos serão 
executados pelo menos uma vez, pois a condição de finalização está no final do loop e não no 
início como no while. Outra questão é que no while o loop fica executando “enquanto condição 
for verdadeira”, já no do while o loop fica executando “até que a condição seja verdadeira”. 
 
 qtd = 0; 
repita do 
{ Execute tarefa A; { a += 3; 
Execute tarefa B; b = b * a; 
Execute tarefa C; qtd++; 
 } } while( qtd > 10); 
 Até ( Condição Lógica ser Verdadeira ) 
 
Vamos colocar a seguinte situação: imprimir na tela a tabuada do 7. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Não 
SIM 
Início 
Escreva 
 7 x aux 
Fim 
aux recebe 1 
Se 
aux < 11 
aux recebe 
aux + 1 
 
 
Prof. MSc Orlei José Pombeiro 
 
13 
 
Exemplo utilizando while Exemplo utilizando for Exemplo utilizando do while 
 
#include <stdio.h> 
#include <stdlib.h> 
 
void main() { 
 int x = 0; 
 
 x = 1; 
 while (x < 11) 
 { 
 printf( "7 x %d = 
%d \n", x, 7 * x ); 
 x++; 
 } 
 printf( "\n" ); 
 system( "pause" ); 
} 
 
 
#include <stdio.h> 
#include <stdlib.h> 
 
void main() { 
 int x; 
 
 for (x = 1; x < 11; x++) 
 printf( " 7 x %d = 
%d \n", x, 7 * x ); 
 printf( "\n" ); 
 system( "pause" ); 
} 
 
 
#include <stdio.h> 
#include <stdlib.h> 
 
void main() { 
 int x; 
 
 x = 1; 
 do 
 { 
 printf( "7 x %d = 
%d \n", x, 7 * x ); 
 x++; 
 } while (x <= 10); 
 
 printf( "\n" ); 
 system( "pause" ); 
} 
 
 
 
 
 
 
 
 
Prof. MSc Orlei José Pombeiro 
 
14 
Aplicação 
 Criar um algoritmo que realize um cálculo matemático básico de uma das 4 operações 
possíveis: soma, subtração, divisão ou multiplicação. Solicitar ao usuário que informar o 
primeiro número, em seguida o operador e por último o segundo número (Ex.: 4 + 7). O 
algoritmo deverá fornecer o resultado final. O usuário poderá fazer quantas operações 
matemáticas desejar. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SIM 
Não 
Não 
SIM 
Início 
Escreva 
 Num1 + num2 
Fim 
Ler: num1, op, num2 
Se 
operador 
= ‘+’ 
Informe o 1º número, o 
operador e o 2º número 
 
Não 
SIM Se 
operador 
= ‘-’ 
Não 
SIM Se 
operador 
= ‘*’ 
Não 
SIM Se 
operador 
= ‘/’ 
Escreva 
 Num1 / num2 
Escreva 
 Num1 * num2 
Escreva 
 Num1 - num2Realizar 
outra 
operação? 
 
 
Prof. MSc Orlei José Pombeiro 
 
15 
Síntese 
Nesta aula vimos a importância das estruturas de decisão e estruturas de repetição, 
assim como a aplicabilidade destes nos algoritmos. Todos os sistemas computacionais em um 
dado momento vão utilizar uma estrutura de decisão e/ou repetição, seja uma estrutura simples 
ou composta, o fato é que somente podemos mudar o rumo de fluxo de trabalho em um 
programa se utilizamos uma destas estruturas. 
 
 
Prof. MSc Orlei José Pombeiro 
 
16 
Referências 
Livros 
o MIZRAHI, Victorine Viviane; Treinamento em Linguagem C: módulo 1 e 2, Ed. Person 
Education do Brasil, São Paulo, 1990. 
o SCHILDT, Herbert; C Completo e Total, Ed. Person Education do Brasil, São Paulo, 1997. 
o HOLZNER, Steven; C++ Black Book, Makron Books, São paulo, 2002. 
o TENENBAUM, Aaron M.; LANGSAM, Yedidyah; AUGENSTEIN, Moshe J.; Estruturas de 
Dados Usando C, Ed. Person Education do Brasil, São Paulo. 
Ebooks 
o DEITEL, C How to Program; Ed. Person Education do Brasil, 2012. 
http://www.pearson.com.br/servicos.asp?pag_id=82&area_pai=59&id_p=3 
o GADDIS; Starting Out with C++: Pearson New International E:From Control 
Structures through Objects, Brief Edition-EB, Ed. Person Education do Brasil, 2013, 
http://www.pearson.com.br/servicos.asp?pag_id=82&area_pai=59&id_p=3 
o GADDIS; Starting Out with C++: From Control Structures thr:International Edition-EB, 
Ed. Person Education do Brasil, 2011, 
http://www.pearson.com.br/servicos.asp?pag_id=82&area_pai=59&id_p=3 
Sites 
o http://www.cprogressivo.net/2013/10/Estrutura-de-dados-dinamica-em-C-Listas-Filas-
Pilhas-Arvores.html 
o http://www.cin.ufpe.br/~garme/public/(ebook)Estruturas%20de%20Dados%20Usand
o%20C%20(Tenenbaum).pdf 
o http://www.mlaureano.org/livro/livro_estrutura_conta.pdf 
o https://www.youtube.com/watch?v=Symvpn9J3FM 
o http://www.inf.puc-rio.br/~inf1620/material.html 
o https://programacaodescomplicada.wordpress.com/indice/linguagem-c/

Outros materiais