Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Estrutura de 
Dados
Introdução a programação
COMPUTADOR
Manipula informações por meio de 
sequência de instruções
INFORMAÇÕES 
E DADOS
NÚMEROS
TEXTOS
BOOLEANOS
.... 
PROGRAMA
Sequências de instruções!
CICLO DE VIDA 
DO PROGRAMA
Esta Foto de Autor Desconhecido está licenciado em CC BY-SA
https://en.wikiversity.org/wiki/Computer_hardware_and_software
https://creativecommons.org/licenses/by-sa/3.0/
Um típico 
computador
Fonte: [1]
Meio de transferência
Armazenamento
A CPU executa o programa e 
acesso os dados necessárias nas 
memórias disponíveis.
Memória Principal (RAM) não é 
permanente!
Computador 
Hipotético
TEMOS UMA MEMÓRIA
• CADA POSIÇÃO tem um 
número para IDENTIFICAR a 
posição 0, 1, 2, 3 ....
TEMOS UMA CPU
• ela tem um local para 
armazenar resultados de 
operação temporariamente 
( REGISTRADOR )
Computador 
Hipotético -
operações
read pos: captura uma informação e armazena na 
posição rotulada por pos
write pos: escreve o valor armazenado em uma 
determinada posição
Storeconst num pos: armazena o valor da 
constante numérica (num) na posição de memória 
pos
add pos1 pos2: soma os valores numéricos 
armazenados em op1 e op2, o resultado fica no 
registrador
store pos: armazena o valor do registrador na 
posição de memória pos
Computador 
Hipotético -
executando
read 0 # l ê v a l o r do t e c l a d o e armazena na p o s i ç ã o 0
storeconst 2.5 1 # armazena o v a l o r 2 . 5 na p o s i ç ã o 1
add|mul|sub|div 0 1 #operações com os itens da posição 0 e 1
store 2 # armazena v a l o r do r e g i s t r a d o r na p o s i ç ã o 2
write 2 # e x i b e o v a l o r da p o s i ç ã o 2 da memória na t e l a
Na memória do 
computador hipotético
|0|0|0|0|0|0|0|0| # c ó d i g o de re ad : 0
|0|0|0|0|0|0|0|0| # 0
|0|0|0|0|0|0|0|2| # c ó d i g o de s t o r e c o n s t : 2
|0|2|5|0|0|0|0|1| # 2 . 5 ( v a l o r r e a l )
|0|0|0|0|0|0|0|1| # 1
|0|0|0|0|0|0|0|3| # c ó d i g o de add : 3
|0|0|0|0|0|0|0|0| # 0
|0|0|0|0|0|0|0|1| # 1
|0|0|0|0|0|0|0|7| # c ó d i g o de s t o r e : 7
|0|0|0|0|0|0|0|2| # 2
|0|0|0|0|0|0|0|1| # c ó d i g o de w r i t e : 1
|0|0|0|0|0|0|0|2| # 2
Exemplo
Faça um programa 
que receba uma 
temperatura em 
graus Celsius e 
converta para 
Fahrenheit
1f = 1.8ºC
Resposta read 0
storeconst 1.8 1
mul 1 0
store 2
storeconst 32 3
add 2 3
store 4
write 4
Computador 
Real
Linguagem de computador é difícil
Não fornece agilidade
O computador hipotético demonstra 
como o programa executa e manipula 
memória
No computador real nós utilizamos 
linguagens de programação, que 
abstraem muito disso tudo para nós
Ciclo de desenvolvimento 
de um programação
Fonte: [1]
Tem que C?
SIM!
Alguns conceitos úteis e interessantes 
podem ser fixados apenas (ou são melhor 
fixados) com a linguagem C ou C++!!!
AH, não sou especialista em C, longe 
disso!!!
Esta Foto de Autor Desconhecido está licenciado em CC BY-NC
https://freepngimg.com/png/10524-c++-free-png-image
https://creativecommons.org/licenses/by-nc/3.0/
Posso usar 
Python?
No momento adequado utilizaremos 
Python!
Mas não utilizaremos operações “prontas” 
ou “built-in” de Python para trabalhar com 
Pilha, Lista, Fila, Árvore, etc... Serão 
motivados à construir cada uma das 
estruturas de dados
Esta Foto de Autor Desconhecido está licenciado em CC BY-NC
https://freepngimg.com/png/2874-snake-png-image-picture-download-
https://creativecommons.org/licenses/by-nc/3.0/
Pq preciso escrever 
um código se já 
existe algo pronto?
São 5 motivos importantes!
1. Para tu entender como FUNCIONA! 
UÉ!?
2. BASE
3. BASE
4. BASE
5. BASE
Esta Foto de Autor Desconhecido está licenciado em CC BY
http://piedraonline.blogspot.com/2013/08/eeuu-despeja-el-area-51-un-informe.html
https://creativecommons.org/licenses/by/3.0/
Utilizando C
# include 
int main (void )
{
float c;
float f;
printf("Digite os graus em Celsius \n");
scanf("%f", &c);
f = 1.8 * c + 32;
printf("Isso quer dizer que são %f Fahrenheit \n",f);
return 0;
}
Variáveis Representa um espaço em 
memória
DEVEM SER DECLARADAS NO 
COMEÇO DO PROGRAMA
DEVE TER UM TIPO e UM 
NOME
Restrições para nomes
Tipos básicos 
em C
Char = ocupa 1 byte (8bits), pode 
representar 256 valores, sendo 28
short int (ou short) = ocupa 2 bytes
int = ocupa 4 bytes
long int (ou long) = ocupa 4 bytes
float = para ponto flutuante
double = ponto flutuante com melhor 
precisão
Tipo Tamanho Representatividade
char 1 byte −128 a 127
unsigned char 1 byte 0 a 255
short int 2 bytes −32 768 a 32 767
unsigned short int 2 bytes 0 a 65 535
long int 4 bytes −2 147 483 648 a 2 147 483 647
unsigned long int 4 bytes 0 a 4 294 967 295
Tamanhos
Tipo Tamanho Representatividade
char 1 byte −128 a 127
unsigned char 1 byte 0 a 255
short int 2 bytes −32 768 a 32 767
unsigned short 
int
2 bytes 0 a 65 535
long int 4 bytes −2 147 483 648 a 2 
147 483 647
unsigned long 
int
4 bytes 0 a 4 294 967 295
Tamanhos
Tipo Tamanho Representatividade
float
double
4 bytes
8 bytes
±10−38 a 1038
±10−308 a 10308
C não tem 
Boleano?
https://qastack.com.br/programming/1921
539/using-boolean-values-in-c
Declaração de 
variáveis
int a;
int b;
float c;
# ou
int a, b;
Constantes
As constantes são declaradas no começo 
do programa com 
# define NOME valor
# include 
# define FATOR 1.8
int main (void )
{
Operadores aritméticos
+ -
/ *
Operadores de atribuição
= +=
-= *=
Operadores de incremento 
e decremento
x = ++a; // a é incrementado e x recebe o valor novo de a
x = a++; // x recebe 2 e a é incrementado
a = 2;
Operadores relacionais
= maior ou igual que
== igual a
!= diferente de
= maior ou igual que
== igual a
!= diferente de
Operadores Lógicos
&& operador binário E (AND)
|| operador binário OU (OR)
! operador unário de NEGAÇÃO (NOT )
Blocos de 
comandos
if ( _condição_1_ ) {
_bloco_de_comandos_1
...
}
else {
if ( _condição_2_ ) {
_bloco_de_comandos_2
...
}
else {
_bloco_de_comandos_3
...
}
}
Swith Case
swith ( expr ) {
case op1 :
......
break;
case op2 :
......
break;
default :
......
break;
}
Vamos praticar 
um pouco!
Praticando!
Exercício 1
Escreva um programa em C que receba 
três números inteiros como entrada e 
imprima, como saída, o maior número 
recebido.
Fonte: [1] . Capítulo 3
Exercício 2
Escreva um programa em C que receba 
três números inteiros como entrada e 
imprima, como saída, os números em 
ordem crescente.
Fonte: [1] – Capítulo 3
Exercício 3
Considere uma disciplina que adota o seguinte critério de aprovação:
os alunos fazem duas provas (P1 e P2) iniciais; se a média nas duas
provas for maior ou igual a 5.0, e se nenhuma das duas notas for
inferior a 3.0, o aluno passa direto. Caso contrário, o aluno faz uma
terceira prova (P3) e a média é calculada considerando se a terceira
nota e a maior das notas entre P1 e P2. Neste caso, o aluno é aprovado
se a média final for maior ou igual a 5.0.
Escreva um programa completo que leia inicialmente as duas notas de
um aluno, fornecidas pelo usuário via teclado. Se as notas não forem
suficientes para o aluno passar direto, o programa deve capturar a
nota da terceira prova, também fornecida via teclado. Como saída, o
programa deve imprimir a média final do aluno, seguida da
mensagem “Aprovado” ou “Reprovado”, conforme o critério descrito
aqui.
Referência
[ 1 ] CELES, Waldemar. Introdução a 
estruturas de dados com técnicas de 
programação em C. 2. Rio de Janeiro GEN 
LTC 2016 1 recurso online (SBC (Sociedade 
Brasileira de Computação)). ISBN 
9788595156654.

Mais conteúdos dessa disciplina