Buscar

aula-01-revisao

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

Introduc¸a˜o
Revisa˜o
Introduc¸ao
Estrutura de Dados
6 de fevereiro de 2014
Estrutura de Dados 1
Introduc¸a˜o
Revisa˜o
To´picos
1 Introduc¸a˜o
2 Revisa˜o
Estrutura de Dados 2
Introduc¸a˜o
Revisa˜o
Atenc¸a˜o
Muita Atenc¸a˜o
Os slides na˜o devem ser usados como u´nica fonte para os estudos.
Pa´gina: http://www.uel.br/pessoal/bacarin/ (Ensino)
Estes slides sa˜o disponibilizados como cortesia e na˜o como material
de consulta. Eles na˜o conteˆm todo o conteu´do apresentado
durante a aula. O material de consulta e o conteu´do a ser estudado
sa˜o as refereˆncias bibliogra´ficas apresentadas no programa da
disciplina e em artigos indicados pelo professor durante a aula.
Estrutura de Dados 3
Introduc¸a˜o
Revisa˜o
ATENC¸A˜O
SEGREDO!
O professor na˜o faz ma´gica!
Estrutura de Dados 4
Introduc¸a˜o
Revisa˜o
O que e´ esperado do aluno?
PONTUALIDADE: 5 minutos antes da aula
As aulas esta˜o planejadas com uma sequeˆncia que
supostamente ajudara˜o a construc¸a˜o do conhecimento
A vida profissional de voceˆs ja´ comec¸ou
INTENSA PARTICIPAC¸A˜O NA AULA
As aulas esta˜o planejadas de forma que voceˆs passem por um
sequeˆncia de experieˆncias que (supostamente) propiciara˜o a
construc¸a˜o do conhecimento
NUNCA: navegar na Internet durante a aula por motivos
alheios a disciplina (NA˜O ler email, acessar Facebook, jornais,
jogos, sites,...)
Estrutura de Dados 5
Introduc¸a˜o
Revisa˜o
O que e´ esperado do aluno?
ESTUDO ORGANIZADO E DILIGENTE
A aula organiza o “esqueleto” da teoria
Sa˜o necessa´rias horas de estudo (texto acadeˆmico)
Aula dada, aula estudada
Estrutura de Dados 6
Introduc¸a˜o
Revisa˜o
O que e´ esperado do aluno?
TRABALHAREMOS EM EQUIPE (com seriedade)
ATENC¸A˜O: Qualquer dificuldade, procurar-me com total liberdade
para conversarmos. Na˜o deixem que uma pedrinha se transforme
em uma grande bola de neve!
Estrutura de Dados 7
Introduc¸a˜o
Revisa˜o
De volta a 2013
R E V I S A˜ O
Estrutura de Dados 8
Introduc¸a˜o
Revisa˜o
Varia´veis
#include <stdio.h>
void main (){
int a;
int i;
a = 0;
for (i=0;i<4;i++){
a = a + i;
printf(“a=%d”,a);
}
}
Estrutura de Dados 9
Introduc¸a˜o
Revisa˜o
Varia´veis
#include <stdio.h>
void main (){
int a;
int i;
a = 0;
for (i=0;i<4;i++){
a = a + i;
printf(“a=%d”,a);
}
}
a=0
a=1
a=3
a=6
Estrutura de Dados 9
Introduc¸a˜o
Revisa˜o
Apontadores
void main (){
int a;
int i;
int *p;
a = 0;
p = &a;
for (i=0;i<4;i++){
p = p + i;
printf(“a=%d p=%d n”,a,p);}
}
Estrutura de Dados 10
Introduc¸a˜o
Revisa˜o
Apontadores
void main (){
int a;
int i;
int *p;
a = 0;
p = &a;
for (i=0;i<4;i++){
p = p + i;
printf(“a=%d p=%d n”,a,p);}
}
a=0 p=-1075241724
a=0 p=-1075241720
a=0 p=-1075241712
a=0 p=-1075241700
Estrutura de Dados 10
Introduc¸a˜o
Revisa˜o
Apontadores
void main (){
int a;
int i;
int *p;
a = 0;
p = &a;
for (i=0;i<4;i++){
*p = *p + i;
printf(“a=%d p=%d n”,a,p); }
}
Estrutura de Dados 11
Introduc¸a˜o
Revisa˜o
Apontadores
void main (){
int a;
int i;
int *p;
a = 0;
p = &a;
for (i=0;i<4;i++){
*p = *p + i;
printf(“a=%d p=%d n”,a,p); }
}
a=0 p=-1078483164
a=1 p=-1078483164
a=3 p=-1078483164
a=6 p=-1078483164
Estrutura de Dados 11
Introduc¸a˜o
Revisa˜o
Apontadores
void main (){
int i;
int *p;
for (i=0;i<4;i++){
p = malloc(sizeof(int));
*p = i;
printf(“i=%d p=%d *p=%d ”,i,p,*p);}
}
Estrutura de Dados 12
Introduc¸a˜o
Revisa˜o
Apontadores
void main (){
int i;
int *p;
for (i=0;i<4;i++){
p = malloc(sizeof(int));
*p = i;
printf(“i=%d p=%d *p=%d ”,i,p,*p);}
}
i=0 p=141381640 *p=0
i=1 p=141381656 *p=1
i=2 p=141381672 *p=2
i=3 p=141381688 *p=3
Atenc¸a˜o: O que acontece com a memo´ria alocada?
Estrutura de Dados 12
Introduc¸a˜o
Revisa˜o
Apontadores
void main (){
int i;
int *p1,**p2,***p3;
i = 33;
p1 = &i; p2 = &p1; p3 = &p2;
printf(“i=%d p1=%d p2=%d p3=%d”,i,p1,p2,p3);
printf(“*p1=%d *p2=%d *p3=%d”,*p1,*p2,*p3);
printf(“**p2=%d **p3=%d”,**p2,**p3);
printf(“***p3=%d”,***p3);
}
Estrutura de Dados 13
Introduc¸a˜o
Revisa˜o
Apontadores
void main (){
int i;
int *p1,**p2,***p3;
i = 33;
p1 = &i; p2 = &p1; p3 = &p2;
printf(“i=%d p1=%d p2=%d p3=%d”,i,p1,p2,p3);
printf(“*p1=%d *p2=%d *p3=%d”,*p1,*p2,*p3);
printf(“**p2=%d **p3=%d”,**p2,**p3);
printf(“***p3=%d”,***p3);
}
i=33 p1=-1076106848 p2=-1076106844 p3=-1076106840
*p1=33 *p2=-1076106848 *p3=-1076106844
**p2=33 **p3=-1076106848
***p3=33
Estrutura de Dados 13
Introduc¸a˜o
Revisa˜o
Relembrando...
Estrutura de Dados 14
Introduc¸a˜o
Revisa˜o
Relembrando
Estrutura de Dados 15
Introduc¸a˜o
Revisa˜o
Func¸o˜es
void f(int x){
x = x + 1;
printf(“x=%d”,x);
}
void main (){
int i; i = 10;
f(5);
f(i);
f(i+1);
f(&i);
}
Estrutura de Dados 16
Introduc¸a˜o
Revisa˜o
Func¸o˜es
void f(int x){
x = x + 1;
printf(“x=%d”,x);
}
void main (){
int i; i = 10;
f(5);
f(i);
f(i+1);
f(&i);
}
x=6
x=11
x=12
x=-1075473683
Estrutura de Dados 16
Introduc¸a˜o
Revisa˜o
Passagem de Paraˆmetros
Por Valor X Por Refereˆncia
Qual a diferenc¸a?
Como usar em C?
Estrutura de Dados 17
Introduc¸a˜o
Revisa˜o
Vetores
void imprima dados(int agc, int conta, int sld){
printf(“agencia = %d, conta = %d, saldo = %d”,agc,conta,sld);
}
void imprima(int i, int agc[], int conta[], int sld[]){
printf(“ag = %d, cta=%d, sldo=%d”,agc[i],conta[i],sld[i]); }
void main (){
int ag[100], cc[100], saldo[100];
ag[0] = 100; cc[0] = 12345; saldo[0] = 100000;
/* ... */
imprima dados(ag[10],cc[10],saldo[10]);
imprima(10,ag,cc,saldo);
}
Estrutura de Dados 18
Introduc¸a˜o
Revisa˜o
Vetores
void imprima dados(int agc, int conta, int sld){
printf(“agencia = %d, conta = %d, saldo = %d”,agc,conta,sld);
}
void imprima(int i, int agc[], int conta[], int sld[]){
printf(“ag = %d, cta=%d, sldo=%d”,agc[i],conta[i],sld[i]); }
void main (){
int ag[100], cc[100], saldo[100];
ag[0] = 100; cc[0] = 12345; saldo[0] = 100000;
/* ... */
imprima dados(ag[10],cc[10],saldo[10]);
imprima(10,ag,cc,saldo);
}
Se ordenarmos algum dos vetores, o que acontece?
Estrutura de Dados 18
Introduc¸a˜o
Revisa˜o
Strings
void main (){
char *s1; char s2[5]; char *s3=“abcde”;
int j;
int i = strlen(s3);
printf(“compr s3= %d”,i);
for (j=0;j<i;j++){ s2[j]=s3[j];}
printf(“s2 = %s”,s2);
s1 = malloc(i*sizeof(char)+1);
strcpy(s1,s3);
printf(“s1 = %s compr s1 = %d”,s1,strlen(s1));
}
Estrutura de Dados 19
Introduc¸a˜o
Revisa˜o
Strings
void main (){
char *s1; char s2[5]; char *s3=“abcde”;
int j;
int i = strlen(s3);
printf(“compr s3= %d”,i);
for (j=0;j<i;j++){ s2[j]=s3[j];}
printf(“s2 = %s”,s2);
s1 = malloc(i*sizeof(char)+1);
strcpy(s1,s3);
printf(“s1 = %s compr s1 = %d”,s1,strlen(s1));
}
O for esta’ correto? Pode funcionar? Sempre? Se s3=“abcdefgh”?
Por que o +1 e´ importante?
Estrutura de Dados 19
Introduc¸a˜o
Revisa˜o
struct StCC{ int ag; int cc; int sld; };
void imprima dados(struct StCC c){
printf(“ag=%d, cc=%d, sldo=%d”,c.ag,c.cc,c.sld);
}
void imprima(int i, struct StCC c[ ]){
printf(“ag=%d, conta=%d, saldo=%d”,c[i].ag,c[i].cc,c[i].sld);
}
void main (){
struct StCC contas[100];
ctas[0].ag = 100; ctas[0].cc = 1234; ctas[0].sld = 1000;
/* Outras inicializac¸o˜es de ctas... */
imprima dados(ctas[10]);
imprima(10,ctas);
}
Estrutura de Dados 20
Introduc¸a˜o
Revisa˜o
struct StCC{ int ag; int cc; int sld; };
void imprima dados(struct StCC c){
printf(“ag=%d, cc=%d, sldo=%d”,c.ag,c.cc,c.sld);
}
void imprima(int i, struct StCC c[ ]){
printf(“ag=%d, conta=%d, saldo=%d”,c[i].ag,c[i].cc,c[i].sld);
}
voidmain (){
struct StCC contas[100];
ctas[0].ag = 100; ctas[0].cc = 1234; ctas[0].sld = 1000;
/* Outras inicializac¸o˜es de ctas... */
imprima dados(ctas[10]);
imprima(10,ctas);
}
Se ordenarmos o vetor, o que acontece?
Estrutura de Dados 20
Introduc¸a˜o
Revisa˜o
struct String{int len; char *s;};
struct String new string(char *s){
struct String res; int i;
res.len = strlen(s); res.s = malloc(res.len);
for(i=0;i<res.len;i++){res.s[i] = s[i];}
return res;
}
void print(struct String *str){ int i;
for(i=0;i<str→len;i++){printf(“%c”,str→s[i]);}
}
void main (){
struct String str1;
str1 = new string(“abacaxi”);
print(&str1);
}
Estrutura de Dados 21
Introduc¸a˜o
Revisa˜o
struct String{int len; char *s;};
struct String new string(char *s){
struct String res; int i;
res.len = strlen(s); res.s = malloc(res.len);
for(i=0;i<res.len;i++){res.s[i] = s[i];}
return res;
}
void print(struct String *str){ int i;
for(i=0;i<str→len;i++){printf(“%c”,str→s[i]);}
}
void main (){
struct String str1;
str1 = new string(“abacaxi”);
print(&str1);
}
struct String *concat string(struct String *str1,struct String *str2);
Estrutura de Dados 21
Introduc¸a˜o
Revisa˜o
Exerc´ıcio
Suponha que um jogo e´ composto por va´rios cena´rios (fases). O
jogador sempre esta´ localizado dentro de um cena´rio. Quando o
jogador termina aquela fase, ele pode mover-se para o cena´rio
Superior, Inferior, em Frente ou Atra´s e assim, sucessivamente.
Quando o jogador entra num cena´rio, ele recebe uma certa
quantidade de tiros, de vidas. Cada cena´rio conte´m um
determinado nu´mero de atacantes (inimigos), armas de ataque e
de defesa que ele pode obter. Cada cena´rio tem um nome.
Fac¸a um programa que permita a construc¸a˜o e a navegac¸a˜o pelos
cena´rios. Em cada cena´rio, mostre suas informac¸o˜es.
Estrutura de Dados 22
	Introdução
	Revisão

Continue navegando

Outros materiais