Вы находитесь на странице: 1из 23

Programao I

Tipos e Estruturas de Dados


(Vetores)
Prof. Lus Otvio Rigo Jnior
DEO! " E#$E% & #'E%


Tipos de Dados

Que tipo de dados poder ser manipulado pelo algoritmo? Qualquer


um?

As linguagens de programao estabelecem regras para definir que


tipos de dados podem ser manipulados atravs de variveis e
constantes;

Tipos de dados bsicos:

Numricos;

Alfanumricos (caracteres;

!"gicos (booleanos#

Tipos de dados bsicos:

$rimitivos ( %nativos& da linguagem;

Definidos pelo 'surio#




Tipo de Dados ( $rimitivos ) $r*definidos

+o os tipos de dados que toda linguagem de programao ,abitualmente


- contm identificados em seu escopo;

Tipos mais comuns:

INTEIRO - integer / int / long ( N.meros inteiros (positivos e


negativos;

REAL * float / doubles ( N.meros reais (positivos e negativos;

CARACTER * char ( 'm .nico caracter# /scrito entre aspas simples;

LGICO / BOOLEAN ( 'm valor l"gico;

TEXTO / CADEIA DE CARACTERES ( String, char[] ( 'm


con-unto de caracteres# /scrito entre aspas duplas#


Tipo de Dados ( $rimitivos ) $r*definidos
Tipo Exemplo Basic (VB)
ascal /
Delp!i
"a#a /
C$$
C
Inteiro 2 | 45 | 100 Integer Integer int int
Real 2,456|101,19 Single eal float float
Caracter
String
!"# | !4#
$"lgorit%os&
'(te
String
)har
String
)har
string
char
char[]
Lgico
*erdadeiro|*
+also | +
,rue
+alse
,rue
+alse
,rue
false
1
0


Tipo de Dados ( $rimitivos ) $r*definidos

Exerccio 17 da Lista 02 (verso simpliicada!:


/m uma eleio presidencial e0istem quatro candidatos# 1s votos so informados por
c"digo# 1s dados utili2ados para a escrutinagem obedecem 3 seguinte codificao:

45 65 75 8: voto para os respectivos candidatos;

9: voto nulo;

:: voto em branco#
/labore um programa em ; que leia um n"mero n de votos5 calcule e escreva:

1 total de votos para cada candidato e o seu percentual sobre o total;

1 total de votos nulos e o seu percentual sobre o total;

1 total de votos brancos e o seu percentual sobre o total;

Como finalizador da entrada de votos utilize o nmero 0.




Tipo de Dados ( $rimitivo ) $r*definido
// Programa Eleicoes
#include -stdio.h/
int %ain 01 2
// Declaracao de variaveis.
int cand1, cand2, cand3, cand4, nulos, brancos, n, 4oto5
// Inicializacao das variveis.
cand1 6 cand2 6 cand3 6 cand4 6 nulos 6 brancos 6 05
7rintf0$8uantos 4otos serao co%7utados9 &15
scanf0$:d&,;n15
// Leitura e computacao dos votos.
for 0i 6 05 i - n5 i<<1 2
7rintf0$=igite o 4oto nu%ero :i> &, i15
scanf0$:d&, ;4oto15
switch 04oto1 2
case 1> cand1<<5 brea?5
case 2> cand2<<5 brea?5
case 3> cand3<<5 brea?5
case 4> cand4<<5 brea?5
case 5> nulos<<5 brea?5
case 6> brancos<<5
@
@
// ontinua na pro!ima pagina.


Tipo de Dados ( $rimitivo ) $r*definido
// E!i"icao dos resultados
7rintf0$*otos 7ara o candidato 1> :iAn&, cand115
7rintf0$Borcentage% do candidato 1> :fAn&, 0float10cand1/n115

7rintf0$*otos 7ara o candidato 2> :iAn&, cand215
7rintf0$Borcentage% do candidato 2> :fAn&, 0float10cand2/n115

7rintf0$*otos 7ara o candidato 3> :iAn&, cand315
7rintf0$Borcentage% do candidato 3> :.2fAn&, 0float10cand3/n115

7rintf0$*otos 7ara o candidato 4> :iAn&, cand415
7rintf0$Borcentage% do candidato 4> :.2fAn&, 0float10cand4/n115

7rintf0$*otos nulos> :iAn&, nulos15
7rintf0$Borcentage% do 4otos nulos> :.3fAn&, 0float10nulos/n115

7rintf0$*otos e% branco> :iAn&, brancos15
7rintf0$Borcentage% do 4otos e% branco> :.3An&, 0float10brancos/n115

return 05
@


Tipo de Dados ( $rimitivos ) $r*definidos

#erguntas:

1 que voc< faria se o n"mero de votos mudasse=

1 que voc< faria se o n"mero de candidatos da elei$o


mudasse=

1 que voc< faria se osse solicitado o arma%enamento


dos votos para cada candidato=

/ se ap%s o a&ma'e(ame()o *e )o*os os #o)os+ ,osse


(ecess-&io mos)&--los=

&m programador pode criar novos tipos de dados5


.teis ao seu trabal,o# >sso pode se tornar necessrio
quando se lida com estruturas de dados complexas5
alm de tornar o programa mais leg?vel;

'm tipo definido pelo usurio pode ter uma


nomenclatura mais adequada ao pro'lema tratado
no momento;

1s tipos de dados definidos pelo usurio so 'aseados


nos tipos primitivos#
Tipo de Dados ( Definidos pelo 'surio

As estruturas de dados deinem o ormato de arma%enagem dos


dados5 isto 5 como eles so organi2ados;

Dividem*se em dois grupos:

Es)&.).&a *e Da*os Simples * @arivel arma2ena um "nico


valor * tipo de dado primitivo ou definido pelo usurio;

Es)&.).&a *e Da*os Compos)as / Es)&.).&a*as * @arivel


arma2ena um con(unto de valores * tipo de dado primitivo ou
definido pelo usurio#

Dividem*se em dois: /omo01(eos (vetores e matri2es e


/e)e&o01(eos (registros ) arquivos#
/struturas de Dados

Va&i-#el compos)a !omo01(ea: con-unto de valores de um mesmo


tipo de dado5 c)amado por um "nico nome;

1s a&&a2s variam quanto a sua dimenso (quantidade de ?ndices


para a individuali2ao de cada elemento#

ArraA unidimensional: VETOR;

ArraA multidimensional: MATRIZ#

;ada elemento de um arraA referenciado por:

*ome do arra+ (varivel que ir identificar o con-unto completo; e

,eu(s! ndice(s! (que ir identificar cada posio individual do


arraA5 ou se-a5 cada elemento#
/struturas de Dados * Bomog<neas

/0emplos:
/struturas de Dados * Bomog<neas
Ve)o& 3a)&i' Bi*ime(sio(al A&&a2 T&i*ime(sio(al
@ C
8 D 6 9 7 D E 4 9 : 7 E 4
F C G 6 8 D D 7 G 6 9 6
6 9 H 7 T C 7 E 4 9 H 8 G 7
G 6 8 D 4 9
6 9 H 7
#$%& ' ( )$%*%& ' + ,$%*%*%& ' -
#$.& ' + )$.*/& ' ( ,$.*.*/& ' 0
#$(& ' - )$/*-& ' - ,$%*.*/& ' (


/struturas de Dados * Bomog<neas

-'serva$.es:

+o .teis quando vo ser tratados vrios elementos (valores! de um


mesmo con(unto;

Ao invs de se definir in.meras variveis (uma para cada elemento


apenas duas so necessrias: uma para representar o con(unto e
outra para representar o ndice para locali2ar um elemento do
con-unto;

;ada elemento do con-unto tratado como se osse uma varivel


de uma estrutura simples)composta;

Tais estruturas exigem controle por repeti$o para lidar com os


valores de seus elementos#


@etor ) ArraA 'nidimensional

+obre vetores ( con(unto de dados )omog/neos:

Na mem"ria5 o con-unto de dados arma%enado de orma contnua5


ocupando espaos subsequentes de mem"ria;

;orrespondem a posi$.es de mem0ria de mesmo nome (elementos de um


mesmo con-unto5 cu-os elementos so dierenciados atrav1s de um
ndice;

$ossuem tipo de dado "nico para todos seus elementos;

A quantidade de elementos que um vetor pode conter denominado de


2aman)o do vetor;

I necessrio apenas um ndice de acesso aos seus elementos;

1 ?ndice tem um limite inerior (0 ou 1! e um limite superior (taman)o 3


taman)o 4 1!#


@etor ) ArraA 'nidimensional

Declarao (do con-unto ( +inta0e:


1tipo de dados2 1nome3vetor2$1tamanho2&4
/0emplo: i() 4[10]5

1peraJes com vetor (de cada elemento:

Atribuio: -no%eC4etor/[-Dndice/] 6 4alor5


EF.> 4[G] 6 5325

!eitura: scanf0$:-ti7o/&, -no%eC4etor/[-Dndice/]15


EF.> scanf0$:i&, ;4[G]15

/scrita: printf0$:-ti7o/&, -no%eC4etor/[-Dndice/]15


EF.> 7rintf0$*etor nas 7osicoes G e H> :i :i&,4[G],4[9]15


@etor ) ArraA 'nidimensional

+e-a o con-unto de notas de um .nico aluno:


H.0 , 10.0 , 5.5 , G.0 , 6.0 , 5.0 , H.0 , H.5

1bter a primeira nota do aluno (H: nota[0] * captura a informao


contida no vetor nota5 na posio G;

Kepresentao do vetor:
5.% .%.% 6.6 +.% 7.% 6.% 5.% 5.6
nota$%& nota$.& nota$/& nota$-& nota$(& nota$6& nota$7& nota$+&


@etor ) ArraA 'nidimensional

Exemplo: La2er um programa que leia um vetor %a& contendo 7G n.meros inteiros5 calcule
e e0iba: o maior elemento e a posi$o (ndice! do maior elemento#
#include -stdio.h/
#define n 30 // )onstante Iue define o nu%. de ele%. do 4etor.
int %ain01 2
int a[n]5 /J *etor a, co% 30 nu%eros inteiros. J/
int i, 7os, %aior5
// Keitura do 4etor L a 4aria4el i re7resenta o indice.
for 0i 6 05 i - n5 i<<1 2
7rintf0$Infor%e 4alor da 7osicao :i 7ara o 4etor> &, i15
scanf0$:i&,;a[i]15
@

// Continua na proxima pagina ...


@etor ) ArraA 'nidimensional
// InicialiMaNOo das 4aria4eis
%aior 6 a[0]5 // Inicial%ente o 1o. ele%ento eh o %aior.
7os 6 05 // Bosicao do %aior ele%ento.
// )o%7aracao dos ele%entos
for 0i 6 15 i - n5 i<<1 2
if 0a[i] / %aior1 2
%aior 6 a[i]5
7os 6 i5
@
@
// EFibicao dos resultados
7rintf0$Paior 4alor> :iAn&, %aior15
7rintf0$Bosicao no 4etor> :iAn$, 7os15
return 05
@


@etor ) ArraA 'nidimensional * Dicas

'm vetor utili2ado quando necessrio trabal,ar com uma lista de valores do
mesmo tipo de dados;

5eclarar pelo menos 6 variveis:

1 vetor;

'm ?ndice para tratar o vetor (pode ser M de 45 dependendo do problema#

6tri'uir valores ao vetor:

&so de um loop (normalmente com a estrutura P898/:88;

6tri'ui$o7 leitura e escrita reali2adas pela sinta0e 4etor[7osiNOo]

89#-:26*2E: vetor um con-unto5 mas s" manipula*se um elemento por ve2#

#rocessar o vetor:

'm ou mais loops (normalmente P898/:885 para percorrer o vetor5 normalmente


processando em cada volta um (ou dois! elementos#


@etor ) ArraA 'nidimensional * Dicas

8mprimir os valores:

'm .nico valor inteiro: 7rintf0$:i&, 4etor[10]15

Todo ou parte do vetor: nesse caso necessrio o uso de um loop#

+e utili2ado o loop P898:

- ndice 1 a pr0pria varivel do loop que 1 incrementada5 de um a cada passo


(automtico;

+e utili2ado os loops E;<=8;,>/:8?8:

$recisa iniciar o ndice;

$recisa5 dentro do loop5 incrementar3decrementar o ndice a cada passo#

,o're o ndice:

Normalmente tem*se um ?ndice para cada vetor5 mas se or preciso tra'al)ar com mais
de um elemento por ve% pode se tornar necessrio mais de um ndice#


Tipo de Dados ( $rimitivos ) $r*definidos

Exerccio 1;1 (varia$o do exerccio 17 da Lista 02!:


/m uma eleio presidencial e0istem x (deinido pelo usurio! candidatos# 1s
votos so informados por c"digo# 1s dados utili2ados para a escrutinagem
obedecem 3 seguinte codificao:

45 65 75 8 a)4 x: voto para os respectivos candidatos;

-5: voto nulo;

6: voto em branco#
/labore um algoritmo que leia um n"mero n de votos5 calcule e escreva:

1 total de votos para cada candidato e o seu percentual sobre o total;

1 total de votos nulos e o seu percentual sobre o total;

1 total de votos brancos e o seu percentual sobre o total#




Tipo de Dados ( $rimitivos ) $r*definidos

Exerccio 1;2 (varia$o do exerccio 17 da Lista 02!:


/m uma eleio presidencial e0istem x (deinido pelo usurio! candidatos# 1s votos so
informados por c"digo# 1s dados utili2ados para a escrutinagem obedecem 3 seguinte
codificao:

45 65 75 8 a)4 x: voto para os respectivos candidatos;

-5: voto nulo;

6: voto em branco#
/labore um algoritmo que leia um n"mero n de votos5 calcule e escreva:

1 total de votos para cada candidato e o seu percentual sobre o total;

1 total de votos nulos e o seu percentual sobre o total;

1 total de votos brancos e o seu percentual sobre o total;

8mprima todos os votos rece'idos por candidato;




Tipos e /struturas de Dados
=

Вам также может понравиться