21 - Estruturas em C (Novos Tipos) Registros

Tamanho: px
Começar a partir da página:

Download "21 - Estruturas em C (Novos Tipos) Registros"

Transcrição

1 21 - Estruturas em C (Novos Tipos) Registros Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante

2 21. Estrutura Até o presente momento os nossos dados eram armazenados ou através de variáveis simples do tipo char, int, float ou double, ou através de conjuntos de valores do mesmo tipo, relacionados em vetores. As Estruturas em C correspondem aos Registros em outra linguagens. Registros são Estruturas que podem agrupar diferentes tipos de informações (dados). uma Estrutura é um conjunto de uma ou mais variáveis veis agrupadas sob um único nome. Então, uma Estruturas em C 2

3 21. Estrutura Então as estruturas podem conter elementos de qualquer tipo de dados tais como int, char, float, double, ponteiros, vetores, matrizes, strings ou mesmo outras estruturas. As componentes armazenadas dentro de uma Estrutura também são chamadas de campos ou membros. As Estruturas (Registros) são chamadas de variáveis compostas heterogêneas, pois elas são compostas de vários campos e cada campo pode ser de um tipo diferente de dados. Estruturas em C 3

4 21.1 Estrutura: Declaração - Struct A declaração de Estruturas é feita através da seguinte sintaxe: Formato da declaração: }; struct nome_da_estrutura { tipo_1 dado_1; tipo_2 dado_2;... tipo_n dado_n; A estrutura pode agrupar um número arbitrário de dados de tipos diferentes Pode-se nomear a estrutura para referenciá-la. Estruturas em C 4

5 21.1 Estrutura: Declaração - Struct A declaração de uma estrutura corresponde somente à definição de um novo tipo (isto é, da sua estrutura). Nela não está implícita a declaração de variáveis do tipo estrutura. Exemplo 1: Suponha que queiramos armazenar os dados relativos a um indivíduo, como mostrado a seguir: int idade; char Nome[60]; char est_civil,sexo; struct Dados { int idade; char est_civil, sexo, nome[20]; } pessoa; Não esquecer do ponto-e-vírgula! Estruturas em C 5

6 21.1 Estrutura: Declaração - Struct A definição da estrutura Dados (struct Dados) indica que a partir daquele momento o compilador passa a conhecer um outro tipo, chamado struct Dados, que é composto por um inteiro, dois caracteres e um vetor de 20 caracteres. E uma variável pessoa do tipo Dados pessoa idade est_civil sexo nome[20] pessoa.idade pessoa.est_civil pessoa.sexo pessoa.nome Ou seja, Dados não é uma variável e sim o nome pelo qual é conhecido o novo tipo de dados. Cada um dos elementos de Dados é denominada campo. Estruturas em C 6

7 21.1 Estrutura: Declaração - Struct struct Dados { int idade; char est_civil, sexo; char nome[20]; } pessoa; Nome do novo tipo de dado Campo idade do tipo int Campo estado civil e sexo do tipo char Campo nome do tipo string Variável do tipo Dados Estruturas em C 7

8 21.1 Estrutura: Declaração - Struct e Variáveis A declaração de variáveis do tipo estrutura pode ser feita no momento em que se faz a definição da própria estrutura struct nome_da_estrutura { tipo_1 dado_1; tipo_2 dado_2;... tipo_n dado_n; } lista de variáveis; Pode-se também declarar uma variável do tipo estrutura usando o struct. No exemplo anterior a declaração da variável pessoa poderia ser feita do seguinte modo: struct Dados pessoa; onde pessoa é a variável do tipo struc Dados Estruturas em C 8

9 21.1 Estrutura: Declaração - Struct e Variáveis A definição de uma estrutura pode ser feita sem indicar o seu nome, mas nesses caso, todas as variáveis desta estruturas tem que ser declaradas no momento da definição. Ex: struct { int dia; char mes[15]; int hora; } data_vest2, dat_vest1; No exemplo acima, não foi dado um nome para a estrutura, mas isso não tem problema porque as variáveis dat_vest1 e data_vest2 foram declaradas junto da definição da estrutura. Estruturas em C 9

10 21.1 Estrutura: Declaração - Struct e Variáveis Exemplo 2: Faça uma estrutura para armazenar as coordenadas (x,y) de um ponto: Declaração: struct ponto{ y 3 p1(x, y) float x; float y; } p1, p2; 1 p2(x, y) 2 4 x A estrutura contém dois floats, x e y p1 e p2 são duas variáveis tipo ponto contendo duas coordenadas cada. Estruturas em C 10

11 21.2 Estrutura: Acesso aos dados da Estrutura. Para se acessar um membro qualquer de uma estrutura usa-se o operador ponto (.) Por ex: p1.x, p1.y Exemplo 3: struct { float x; float y; } p1, p2; p1.x = 2.0; p1.y = 1.0; p2.x = 4.0; p2.y = 3.0; Neste exemplo, foram atribuídos à variável p1 (ao ponto p1 ) os valores de coordenadas 2.0 e 1.0. E à variável p2 (ao ponto p2) foram atribuídos os valores de coordenadas 4.0 e 3.0 Estruturas em C 11

12 21.2 Estrutura: Acesso aos dados da Estrutura. Exemplo 4 : Criar uma estrutura capaz de armazenar datas com 3 campos (dia, ano e mês) em que cada campo é de um tipo diferente. struct Data { int Dia, Ano; char Mes[20]; }; #include <stdio.h> struct Data {int Dia, Ano; char Mes[20];}; main() { struct Data d1; printf( Entre com o dia: ); scanf( %d,&d1.dia); fflush(stdin); printf( Entre com o mes: ); gets(d1.mes); printf( Entre com o ano: ); scanf( %d,&d1.ano); printf( A data digitada e: ); printf( %d/%s,d1.dia,d1.mes); printf( /%d\n,d1.ano); } Estruturas em C 12

13 21.2 Estrutura: Acesso aos dados da Estrutura. OBS: No Exemplo 4, a variável d1 é do tipo Data e uma informação pertencente a um dado campo da estrutura Data é acessada utilizando-se o ponto., isto é: d1.dia d1.mes d1.ano Estruturas em C 13

14 21.3 Estrutura: Carga Inicial Automática tica Uma Estrutura pode ser iniciada quando ela é declarada. Para tanto, usa-se a seguinte sintaxe: struct nome_estrutura variavel = { valor1, valor2,..., valorn} Coloca-se entre chaves os valores dos membros da estrutura, pela ordem em que eles foram escritos na sua definição. Exemplo 5: struct Data d1 = {23, 58, Jun }; Neste exemplo a variável d1.dia vai receber o valor 23. A variável d1.ano recebe o valor 58 e a variável d1.mes recebe o valor Jun. Estruturas em C 14

15 21.3 Estrutura: Carga Inicial Automática tica Exemplo 6 Inicialização #include <stdio.h> #include <stdlib.h> struct Data {int Dia, Ano; char Mes[20];}; main() { struct Data d1 = {23,67, Jan }; printf( Data inicial e: ); printf( %d/%s,d1.dia,d1.mes); printf( /%d\n,d1.ano); printf( Entre com o dia: ); scanf( %d,&d1.dia); fflush(stdin); printf( Entre com o mes: ); gets(d1.mes); printf( Entre com o ano: ); scanf( %d,&d1.ano); printf( A data digitada e: ); printf( %d/%s,d1.dia,d1.mes); printf( /%d\n,d1.ano); system( pause ); } Estruturas em C 15

16 21.3 Estrutura: Carga Inicial Automática tica Estruturas em C 16

17 21.4 Estruturas: typedef Todas as vezes em que se for declarar uma variável do tipo estrutura fora do local de definição da mesma, é necessário colocar antes do nome da variável a palavra reservada struct seguida do nome da estrutura. Ex: struct Data d1; declaração da variável d1 Existe uma outra maneira de se declarar uma variável do tipo estrutura, utilizando uma palavra sinônimo para a estrutura. Isto é feito através da palavra reservada typedef, cuja sintaxe é: typedef tipo_existente sinônimo OBS: A palavra typedef não cria um novo tipo, ela apenas permite que um determinado tipo possa ser denominado de forma diferente Estruturas em C 17

18 21.4 Estruturas: typedef Ex: typedef struct Data Dt; Dt d1; OBS: Neste exemplo foi criado o sinônimo Dt para o tipo struct Data. Deste modo, a declaração da variável d1 foi feita utilizando esse sinônimo. A utilização da palavra reservada typedef não se limita apenas as estruturas, ela estabelece um sinônimo para qualquer conjunto de palavras, por ex: typedef float real; O tipo float passa também a ser representado pela palavra real. Pode-se então declarar uma variável utilizando as duas palavras: float e real. Estruturas em C 18

19 21.4 Estruturas: typedef Pode-se também empregar a palavra reservada typedef junto com a definição da estrutura: typedef struct Data { int Dia, Ano; char Mes[20]; } Dt; Typedef define que o sinônimo de struct Data {...} é a palavra Dt. main() { Dt d1; d1.dia = 26; d1.mes = Jan ; d1.ano = 93; } Não é necessário empregar a palavra struct Data e sim apenas Dt. Estruturas em C 19

20 21.4 Estruturas: typedef A seguir são ilustradas as três formas possíveis para se declarar um novo tipo Data utilizando struct com ou sem typedef: struct Data { int Dia, Ano; char Mes[20]; }; struct Data { int Dia, Ano; char Mes[20]; }; typedef struct Data { int Dia, Ano; char Mes[20]; } Dt; main() { struct Data d1; d1.dia = 26; d1.mes = Jan ; d1.ano = 93;} typedef struct Data Dt; main() { Dt d1; d1.dia = 26; d1.mes = Jan ; d1.ano = 93; } main() { Dt d1; d1.dia = 26; d1.mes = Jan ; d1.ano = 93; } Estruturas em C 20

21 21.4 Estruturas: typedef Exemplo 7 Atribuições #include <stdio.h> typedef struct Data {int Dia, Ano; char Mes[20];} Dt; main() { int n_dias; Dt d2, d1 = {23, 67, Jan }; printf( Data inicial e: ); printf( %d/%s/%d\n,d1.dia,d1.mes,d1.ano); d2 = d1; printf( Entre com n. de dias: ); scanf( %d,&n_dias); d2.dia = d1.dia + n_dias; printf( A nova data e: ); printf( %d/%s/%d\n,d2.dia,d2.mes,d2.ano); } Atribuição de valores entre estruturas: d2 = d1; Equivale à: d2.dia = d1.dia; d2.mes = d1.mes; d2.ano = d2.ano; Observe que para vetor e matriz a atribuição é sempre feita elemento por elemento! Problema: 31/12/1999 -> 32/12/1999? Estruturas em C 21

22 21.5 Novos Tipos: funções + struct Exemplo 8: Fazer um programa que dado uma data e um certo número de dias, ele imprime a nova data. Para fazer esse programa é preciso verificar quantos dias tem o mês, isto é, se o mês tem 31, 30, 29 ou 28 dias. Os meses que tem 31 dias são os meses de Janeiro, Março, Maio, Julho, Agosto, outubro e Dezembro Os meses com 30 dias são os meses de Abril, Junho, Setembro, Novembro. Os meses com 28 dias temos somente o mês de Fevereiro, que se o ano for bissexto ele tem 29 dias. Então também é preciso saber quando o ano é bissexto Estruturas em C 22

23 21.5 Novos Tipos: funções + struct 1. O programa terá uma estrutura de dados para armazenar o dia, mês e ano e esta estrutura terá duas variáveis (d1 e d2); d1 irá guardar da data de entrada e d2 vai guardar a nova data depois de somados os dias. Data dia mês ano typedef struct Data {int Dia, int Mes, int Ano;}Data; Estruturas em C 23

24 21.5 Novos Tipos: funções + struct 2. O programa terá uma função (adddia) que que vai receber a data atual d1 e o número de dias que se quer adicionar e ela vai calcular e devolver nova data d2; Data adddia(data di, int ndias); 3. Uma função que vai verificar se o ano é bissexto. Se algum ano no intervalo da nova data for bissexto esta função devolve o valor 1, senão ela devolve o valor zero. int bissexto(int ano); Essa função será chamada dentro da função Data. 4. Um procedimento que recebe o valor de uma data e a imprime void printdata(data di); Estruturas em C 24

25 21.5 Novos Tipos: funções + struct Em 1582, Gregório XIII fez uma nova definição para ano bissexto: Calendário Gregoriano , Cada 4 anos + 1 dia Cada 100 anos - 1 dia Cada 400 anos + 1 dia Estruturas em C 25

26 21.5 Novos Tipos: funções + struct (a) Não divisível por 100 e divisível por 4. (b) Divisível por 100 e 400. (c) Os demais anos não são Bissextos. Em 1582, Gregório XIII fez uma nova definição para ano bissexto: Ano Bissexto Calendário Gregoriano Algoritmo Se resto(ano/100) é 0 Se (ano/400) é 0 então bissexto; (b) Senão não_bissexto; (c) Senão Se resto(ano/4) é 0 então bissexto; (a) Senão não_bissexto; (c) OBSERVAÇÃO: Subtrair 1 dia do calendário a cada 3300 anos Estruturas em C 26

27 int bissexto(int ano) {if (ano % 100 == 0) if (ano % 400 == 0) return 1; else return 0; else if (ano % 4 == 0) return 1; else return 0; } 21.5 Novos Tipos: funções + struct Função que verifica se O ano é bissexto (retorna 1 ou não (0)) Estruturas em C 27

28 21.5 Novos Tipos: funções + struct Data adddia(data di, int ndias) { int auxd, TRUE = 1; auxd = di.dia + ndias; while (TRUE) {//Inicio do While if ((di.mes == 1) (di.mes == 3) (di.mes == 5) (di.mes== 7) (di.mes == 8) (di.mes == 10) (di.mes == 12)) if (auxd <= 31) break; else auxd = auxd -31; else if((di.mes == 4) (di.mes == 6) (di.mes == 9) (di.mes == 11)) if (auxd <= 30) break; else auxd = auxd - 30; else if (di.mes == 2) if (bissexto(di.ano)) if (auxd <= 29) break; else auxd = auxd - 29; else if (auxd <= 28) break; else auxd = auxd - 28; di.mes = di.mes + 1; // Verifica se ultrapassa 12 meses. if (di.mes > 12) { di.ano = di.ano + 1; di.mes = 1; } } // Fim do while. di.dia = auxd; return di; } // fim função Função para adicionar dias na data. Estruturas em C 28

29 21.5 Novos Tipos: funções + struct Exemplo 8 Funções + struct #include <stdio.h> #include <stdlib.h> typedef struct Data {int Dia, Mes, Ano;}Data; // Protótipos das funções. void printdata(data di); int bissexto(int ano); Data adddia(data di, int ndias); // Função principal. main() {int ndias; Data d2, d1 = {31,12,1999}; printf("data inicial e:"); printdata(d1); d2 = d1; printf("entre com n. de dias:"); scanf("%d",&ndias); d2 = adddia(d1, ndias); printf("a nova data e:"); printdata(d2);} Fazer um programa que dado uma data e um certo número de dias, ele imprime a nova data. Estruturas em C 29

30 21.5 Novos Tipos: funções + struct // função que imprime a data. CONTINUAÇÃO - Exemplo 8 void printdata(data di) { printf( A nova data eh: ); printf( %d/%s/%d\n,di.dia,di.mes,di.ano); } //Função verifica se O ano é bissexto (retorna 1 ou não (0)) Data adddia(data di, int ndias) { int auxd, TRUE = 1; auxd = di.dia + ndias; while (TRUE) {//Inicio do While if ((di.mes == 1) (di.mes == 3) (di.mes == 5) (di.mes== 7) (di.mes == 8) (di.mes == 10) (di.mes == 12)) if (auxd <= 31) break; else auxd = auxd -31; else if((di.mes == 4) (di.mes == 6) (di.mes == 9) (di.mes == 11)) if (auxd <= 30) break; else auxd = auxd - 30; else if (di.mes == 2) if (bissexto(di.ano)) if (auxd <= 29) break; else auxd = auxd - 29; else if (auxd <= 28) break; else auxd = auxd - 28; Estruturas em C 30

31 // Acréscimo no mês. CONTINUAÇÃO - Exemplo 8 di.mes = di.mes + 1; // Verifica se ultrapassa 12 meses. if (di.mes > 12) { di.ano = di.ano + 1; di.mes = 1; } } // Fim do while. di.dia = auxd; return di; } //Função verifica se O ano é bissexto (retorna 1 ou não (0)) int bissexto(int ano) {if (ano % 100 == 0) if (ano % 400 == 0) return 1; else return 0; else if (ano % 4 == 0) return 1; else } 21.5 Novos Tipos: funções + struct return 0; Estruturas em C 31

32 21.5 Novos Tipos: funções + struct Exemplo 9: Fazer um programa que realize o cadastro de contas bancárias com as seguintes informações: Número da conta, nome do cliente e saldo. O banco permitirá o cadastramento de apenas 15 e não pode haver mais de uma conta com o mesmo número. Crie o menu de opções a seguir: Menu de Opções: 1. Cadastrar contas 2. Visualizar todas as contas 3. Excluir a conta com menor saldo(suponha que não tem saldos iguais) 4. Sair Estruturas em C 32

33 21.6 Estrutura: Exemplos Resolvidos Exemplo 9- Solução: O esquema de resolução deste problema é o seguinte: 1) Fazer um laço com o comando do-while. 2) Dentro deste laço, apresentar o menu de opções e pedir para escolher uma opção. Menu de Opções: 1. Cadastrar contas 2. Visualizar todas as contas 3. Excluir a conta com menor saldo(suponha que não tem saldos iguais) 4. Sair Estruturas em C 33

34 21.6 Estrutura: Exemplos Resolvidos 3) Se (opçao = 1), pedir para digitar o número da conta, verificar se esta conta já está cadastrada. Se ela estiver cadastrada escrever uma mensagem. Senão, verificar se a conta pode ser cadastrada e a seguir cadastrá-la.voltar no inicio do do-while. 4) Se (opçao = 2), verificar se esta conta existe. Se ela existir, mostrar a conta. Senão escrever mensagem dizendo que a conta não existe. Voltar no início do do-while 5) Se (opçao = 3), procurar entre as contas cadastradas aquela que tem o menor saldo, achar a posição que ela ocupa no vetor de cadastro, apagá-la, reposicionar as demais contas no vetor de cadastro, e voltar no início do do-while. 6) Se (opçao = 4), sair do laço e encerrar o programa. A seguir está mostrado o programa deste exemplo Estruturas em C 34

35 21.6 Estrutura: Exemplos Resolvidos #include <conio.h> #include <string.h> #include <stdio.h> Exemplo 9 #include <stdlib.h> struct { int num; char nome[35]; float saldo; } conta[15]; main() { int i,j, op, posi, achou, num_conta; float saldo_cliente, menor_saldo; char nome_cliente[35]; for (i=0;i<15;i++) { conta[i].num = 0; strcpy(conta[i].nome,"\0"); conta[i].saldo = 0; } Estruturas em C 35

36 21.6 Estrutura: Exemplos Resolvidos do //Início laço principal { system("cls"); Exemplo 9 printf("\nmenu de Opcoes"); printf("\n1 - Cadastrar contas"); printf("\n2 - Visualizar todas as contas de um determinado cliente"); printf("\n3 - Excluir conta de menor saldo"); printf("\n4 - Sair"); printf("\ndigite sua opcao: "); scanf("%d",&op); if ((op < 1) (op > 4)) printf("\nopcao Invalida!"); if (op == 1) { achou = 0; printf( "\ndigite o numero da conta a ser incluida "); scanf("%d",&num_conta); 31 Estruturas em C 36

37 21.6 Estrutura: Exemplos Resolvidos //Verifica se esta conta já está cadastrada fflush(stdin); for (i=0;i<15;i++) { if (num_conta == conta[i].num) achou = 1; } if (achou == 1) printf("\nja existe conta cadastrada com este numero"); else // cadastrar a conta { posi = -1; j = 0; while (j < 15)// Verifica se pode cadastrar { if (conta[j].num == 0) { posi = j; j = 15;} j++; } // Fim while if (posi == -1) printf("\nimpossivel cadastrar novas contas"); 32 Estruturas em C 37

38 21.6 Estrutura: Exemplos Resolvidos else { printf("\ndigite o nome do cliente "); gets(nome_cliente); fflush(stdin); printf("\ndigite o saldo do cliente "); scanf("%f",&saldo_cliente); conta[posi].num = num_conta; strcpy(conta[posi].nome,nome_cliente); conta[posi].saldo = saldo_cliente; printf( "\nconta cadastrada com sucesso!"); } }// Fim else cadastrar conta getch(); } //Fim if (op==1) fflush(stdin); 33 Estruturas em C 38

39 21.6 Estrutura: Exemplos Resolvidos if (op == 2) { printf( "\ndigite o nome do cliente a ser consultado "); gets(nome_cliente); achou = 0; for (i=0;i<15;i++) { if (stricmp(conta[i].nome,nome_cliente) == 0) {printf( "\nnumero conta: %d Saldo:%.2f ", conta[i].num, conta[i].saldo); achou = 1; } } // Fim for if (achou == 0) printf("\nnao existe conta cadastrada para este cliente!"); getch(); }// Fim if (op==2) 34 Estruturas em C 39

40 21.6 Estrutura: Exemplos Resolvidos if (op == 3) { i = 0; achou = 0; while (i < 15) { if (conta[i].num!= 0) { if (i==0) { menor_saldo = conta[i].saldo; posi = i; } else if (conta[i].saldo < menor_saldo) { menor_saldo = conta[i].saldo; posi = i; } achou = 1; } i++; } // Fim while if (achou == 0) printf( "\nnenhuma conta foi cadastrada!"); else // excluir a conta { for (i=posi;i<14;i++) { conta[i] = conta[i+1]; } Estruturas em C 35 40

41 21.6 Estrutura: Exemplos Resolvidos conta[i].num = 0; strcpy(conta[i].nome,"\0"); conta[i].saldo = 0; printf("\nconta excluida com sucesso!"); } // Fim else excluir a conta getch(); } // Fim if (op==3) } while (op!=4); //Fim laço principal } // Fim programa Estruturas em C 41

42 21.6 Estrutura: Exemplos Resolvidos Exemplo 10 Polinômio Fazer um programa que leia os coeficientes de um polinômio P(x), imprima e calcule seu valor num ponto x (fornecido pelo usuário), e encontre os coeficientes do polinômio Q(x). Utilize uma função para ler o polinômio, outra para imprimi-lo e outra para calcular o seu valor no ponto x. Estruturas em C 42

43 21.6 Estrutura: Exemplos Resolvidos A estrutura de dados (struct Pol) para armazenar os coeficientes do polinômio deve ter um campo para: 1. armazenar os coeficientes do polinômio vetor v[ ]de até 100 elementos reais; 2. armazenar o grau do polinômio - variável inteira n; 3. para indicar se o polinômio já foi inicializado ou não- variável inteira init. Então o tipo de dado struct Pol terá a seguinte forma: Nome da variável V[0] V[1] n init V[2]... V[n] typedef struct Pol { float v[101]; int n; int init;}pol; Estruturas em C 43

44 21.6 Estrutura: Exemplos Resolvidos #include <stdio.h> #include <stdlib.h> typedef struct Pol {float v[101]; int n; int init;}pol; // Protótipos das funções. void printpol(pol px); Pol initpol(pol px); float valor_pol(pol px, float x); Pol calcpol(pol px, float x); // Função principal. main() {Pol p, p2; float ponto; printf("iniciando p:"); p = initpol(p); p2 = p; printf("em que ponto você deseja calcular o polinomio?"); scanf("%f",&ponto); printf("\n Mostrando p:"); printpol(p); printf("p(x=%.2f)=%.2f\n",ponto,valor_pol(p,ponto)); p2 = calcpol(p,ponto), printf("\n Mostrando p2:"); printpol(p2); system("pause"); } Exemplo 10 Estruturas em C 44 38

45 // Função de impressão de px. void printpol(pol px) {int i; //Se o polinômio foi inicializado. if (px.init) { for (i=px.n; i >= 0; i--) printf("\nc[%d]=%.2f",i,px.v[i]); printf("\n"); } else printf("inicialize px! \n"); } // Função de leitura de px. Pol initpol(pol px) { int i; px.init = 1; printf("\ninsira grau px <= 100:"); scanf("%d",&px.n); for (i=0; i <= px.n; i++) { printf("entre com c[%d]:",i); scanf("%f",&px.v[i]); } return px; } 21.6 Estrutura: Exemplos Resolvidos Estruturas em C 39 45

46 21.6 Estrutura: Exemplos Resolvidos // Função que calcula o valor de px. float valor_pol(pol px, float x) { int i, n = px.n; } float y; if (n == 0) y = px.v[0]; else { // Usando algoritmo de Briott-Rufini. y = px.v[n-1] + px.v[n]*x; for (i=n-2; i >= 0; i--) y = px.v[i] + x*y; } return y; Estruturas em C 46

47 21.6 Estrutura: Exemplos Resolvidos // Função que acha o polinomio Q(x)- Quociente da //divisão de P(x)/(x-x1) Pol calcpol(pol px, float x) { //Pol pz; int i, n = px.n; Pol pz; pz = px; if (n == 0) pz.v[0]= px.v[0]; else { // Usando algoritmo de Briott-Rufini. pz.v[n-1] = px.v[n-1] + px.v[n]*x; for (i=n-2; i >= 0; i--) pz.v[i] = px.v[i] + x*pz.v[i-1]; pz.n = n - 1; } return pz; } Estruturas em C 47

48 21.6 Estrutura: Exemplos Resolvidos Estruturas em C 48

49 21.6 Estrutura: Exemplos Resolvidos Exemplo 11: Construir um programa que armazene e manipule informações de uma usina hidrelétrica, tais como dadas abaixo: Nome Volume (x) Furnas Defluência (u) Polinômio grau 4: Volume x Altura Polinômio grau 4: Defluência X Altura (x) (u) Estruturas em C 49

50 21.6 Estrutura: Exemplos Resolvidos Exemplo 11 Usinas Hidro #include <stdio.h> typedef struct usinah {char nome[100]; float x, u; Pol px, pu;} usinah; // Protótipos das funções. void printusinah(usinah h); usinah initusinah(usinah h); float calcaltx(usinah h); // Função principal. main() { usinah h; float x; printf( Iniciando usina: ); h = initusinah(h); printf( \n Mostrando h: ); printusinah(h); printf( px=%f\n,calcaltx(h)); } Exemplo 11 Usinas Hidro // Inicializa os dados de uma usina. usinah initusinah(usinah h) { Pol px, pu; printf( \n Entre nome da usina: ); gets(h.nome); printf( \n Entre com volume: ); scanf( %f,&h.x); printf( \n Entre com defluencia: ); scanf( %f,&h.u); h.px = initpol(px); h.pu = initpol(pu); return h;} // Imprime dados de uma usina. void printusinah(usinah h) {printf( \n Nome da usina: ); puts(h.nome); printf( \nvolume:%f,h.x); printf( \ndefluencia:%f,h.u); printf( \n Polx = );printpol(h.px); printf( \n Polu = );printpol(h.pu);} Estruturas em C 50

51 21.6 Estrutura: Exemplos Resolvidos Exemplo 11 Usinas Hidro // Função que calcula phi(x) // (altura de montante). float calcaltx(usinah h) { float y; y = calcpol(h.px, h.x); return y; } Observação Importante: A estrutura usinah utiliza uma outra estrutura Pol que representa um polinômio, bem como as funções associadas a manipulação da estrutura Pol. Estruturas em C 51

52 21.6 Estrutura: Exemplos Resolvidos Exemplo 12 Cadastro2 Fazer um programa que leia o nome de um produto vendido, a data da compra, o preço da venda e imprima todos estes valores. A seguir imprima também um resumo da venda da seguinte maneira: Resumo da venda Produto: geladeira Data da venda:23/10/2008 Preço do produto: R$ Utilize uma estrutura para armazenar os dados dos produtos e funções para fazer as impressões. Estruturas em C 52

53 21.6 Estrutura: Exemplos ResolvidosExemplo 12 Cadastro2 #include <stdio.h> #include <stdlib.h> typedef struct Data {int D, M, A;} Dt; typedef struct Produto {char Nome[100]; Data Venda; float Preco;} Pd; // Protótipos das funções. void printdata(dt d); void printprod(pd p); Dt initdata(void); Pd initprod(void); // Função principal. main() {Pd p[3]; int i; printf("leitura de produtos:"); // Função principal. main() {Pd p[3]; int i; printf("leitura de produtos:"); for (i=0; i < 3; i++) { fflush(stdin); p[i]=initprod(); fflush(stdin); printprod(p[i]);} printf("\n\n"); system("pause"); } // Função que imprime Data. void printdata(dt d) {printf("%d/%d/%d",d.d,d.m,d.a);} Estruturas em C 53

54 21.6 Estrutura: Exemplos Resolvidos Exemplo 12 Cadastro2 // Função que imprime Produto. void printprod(pd p) { printf("\tresumo Venda:"); printf("\n\tproduto: "); puts(p.nome); printf("\tdata de venda: "); printdata(p.venda); printf("\n\tpreco Produto: "); printf("r$ %10.2f \n", p.preco);} // Função que inicializa Data. Dt initdata(void) { Dt d; printf("dd/mm/aaaa: "); scanf("%d%d%d",&d.d, &d.m, &d.a); return d;} // Função que inicializa // produto. Pd initprod(void) {Pd p; printf("\n \n"); printf("\n Nome Produto:"); gets(p.nome); fflush(stdin); printf("\n Data da venda "); p.venda = initdata(); printf("\n Preco da venda: "); scanf("%f",&p.preco); printf("\n \n"); printf("\n \n"); return p; } Estruturas em C 54

55 21.6 Estrutura: Exemplos ResolvidosExemplo 12 Cadastro2 Estruturas em C 55

56 21.7 Novos Tipos: enum Definição A palavra enum associa a um conjunto de nomes, valores inteiros a partir de zero (padrão) ou a partir de um primeiro valor fornecido. Se um valor for fornecido à alguns nomes e não à outros, o compilador atribui o próximo valor inteiro aos que não tiverem valor. Tipos enum são tratados como inteiros e qualquer operação de números inteiros com eles é válida. Exemplo13 No exemplo abaixo é criada uma estrutura enum que associa para cada palavra um valor inteiro. enum Mes { Jan = 1, Fev, Mar, Abr, Mai, Jun, Jul, Ago, Set, Out, Nov, Dez }; Estruturas em C 56

57 21.7 Novos tipos: enum Exemplo 13.1 Enum Mes #include <stdio.h> enum meses {Jan = 1, Fev, Mar, Abr, Mai, Jun, Jul, Ago, Set, Out, Nov, Dez}; main() { int dia; meses mes; mes = Set; if (mes == Jan mes == Mar mes == Mai mes == Jul mes == Ago mes == Out mes == Dez) dia = 31; else if (mes == Fev) dia = 28; else dia = 30; printf( Numero dias: %d \n,dia); } Exemplo 13.2 Enum Mes #include <stdio.h> enum meses {Jan = 1, Fev, Mar, Abr, Mai, Jun, Jul, Ago, Set, Out, Nov, Dez}; main() { int dia; meses mes; mes = meses(9); // int -> meses! if (mes == Jan mes == Mar mes == Mai mes == Jul mes == Ago mes == Out mes == Dez) dia = 31; else if (mes == Fev) dia = 28; else dia = 30; printf( Numero dias: %d \n,dia); } Estruturas em C 57

58 21.8 Novos tipos: resumo (i) Assim, como vetores e matrizes permitem agrupar e acessar uma grande quantidade de dados do mesmo tipo sob o nome de uma variável com o uso de índices e colchetes, estruturas são muito úteis para definir um conjunto de campos de valores para diferentes tipos de dados que podem ser armazenados em uma variável e acessados através do operador.. (ii) A definição de tipos e tipos enumerados facilita a programação e permite melhorar o entendimento do programa. Além disso, estruturas podem ser combinadas com quaisquer outros tipos de dados tais como int, char, float, vetores, matrizes e inclusive outras estruturas. Estruturas em C 58

59 21.8 Novos tipos: fim da aula 21 Fim de Novos Tipos Structs,, Typedef e Enum Estruturas em C 59

9. Estruturas em C Registros

9. Estruturas em C Registros 9. Estruturas em C Registros Unesp Campus de Guaratinguetá Curso: Programação de Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro 1 9. Estrutura Até o presente momento os nossos dados eram armazenados

Leia mais

Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I. Aula 12 Estruturas

Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I. Aula 12 Estruturas Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I Aula 12 Estruturas Responsável Seiji Isotani, Rafaela V. Rocha sisotani@icmc.usp.br rafaela.vilela@gmail.com

Leia mais

Introdução a Programação. Tipos Estruturados de Dados

Introdução a Programação. Tipos Estruturados de Dados Introdução a Programação Tipos Estruturados de Dados Tópicos da Aula Hoje aprenderemos a trabalhar com tipos de dados mais complexos Tipos Primitivos x Tipos Estruturados Conceito de Tipos Estruturados

Leia mais

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Estruturas em C

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Estruturas em C Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Estruturas em C 1 Material preparado pela profa Silvana Maria Affonso de Lara 2º semestre de 2010 ROTEIRO DA AULA

Leia mais

12 - Dados Estruturados Vetores, Matrizes e Strings

12 - Dados Estruturados Vetores, Matrizes e Strings 12 - Dados Estruturados Vetores, Matrizes e Strings Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante Vetores,

Leia mais

Estruturas (registros)

Estruturas (registros) BCC 201 - Introdução à Programação I Estruturas (registros) Guillermo Cámara-Chávez UFOP 1/44 Estruturas (struct) I Imaginemos que queremos ler as notas de 4 provas para um aluno e calcular a média do

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;

Leia mais

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental USP - ICMC - SSC SSC 0301-2o. Semestre 2013 Disciplina de Introdução à Computação para Engenharia Ambiental 1 Outubro 2013 Prof. Dr. Fernando Santos Osório / Prof. Artur Lovato Cunha LRM - Laboratório

Leia mais

Programação: Vetores

Programação: Vetores Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia

Leia mais

USP - ICMC - SSC SSC o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

USP - ICMC - SSC SSC o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria USP - ICMC - SSC SSC 0501-1o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] { icmc. usp. br, gmail. com } Página Pessoal:

Leia mais

Estruturas. struct são coleções de dados heterogêneos agrupados em uma mesma estrutura de dados. Ex: armazenar as coordenadas (x,y) de um ponto:

Estruturas. struct são coleções de dados heterogêneos agrupados em uma mesma estrutura de dados. Ex: armazenar as coordenadas (x,y) de um ponto: Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Estruturas Profa Rosana Braga 1 Estruturas struct são coleções de dados heterogêneos agrupados em uma mesma estrutura

Leia mais

Legibilidade do código fonte

Legibilidade do código fonte Sumário Legibilidade do código fonte Exemplos Normas Instrução switch Sintaxe e Semântica Exemplo Tipos enumerados Exemplo Programação 2007/2008 DEEC-IST 1 Legibilidade do código fonte Exemplo: Considere

Leia mais

LISTA DE EXERCÍCIOS 2

LISTA DE EXERCÍCIOS 2 UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO DE CIÊNCIA DA COMPUTAÇÃO PROGRAMAÇÃO DE COMPUTADORES 1. TIPOS COMPOSTOS DE DADOS LISTA DE EXERCÍCIOS 2 1. Considerando as declarações abaixo, responda dizendo

Leia mais

Computação 2. Aula 5. Diego Addan Estrutura de Dados Registros (structs)

Computação 2. Aula 5. Diego Addan Estrutura de Dados Registros (structs) Computação 2 Aula 5 Estrutura de Dados Registros (structs) Diego Addan diegoaddan@gmail.com Estruturas ou Registros (structs) Uma estrutura (registro) é uma coleção de variáveis referenciadas por um nome,

Leia mais

Linguagem C. Programação Estruturada. Estrutura de Dados Heterogêneos. Prof. Luis Nícolas de Amorim Trigo

Linguagem C. Programação Estruturada. Estrutura de Dados Heterogêneos. Prof. Luis Nícolas de Amorim Trigo Programação Estruturada Linguagem C Estrutura de Dados Heterogêneos Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.br Sumário Introdução Struct Declaração Manipulação Vetor de Struct

Leia mais

Métodos Computacionais. Tipos Estruturados

Métodos Computacionais. Tipos Estruturados Métodos Computacionais Tipos Estruturados Tipos Estruturados C oferece tipos primitivos que servem para representar valores simples Reais (float, double), inteiros (int), caracter (char) C oferece também

Leia mais

Computação 2. Aula 7. Profª. Fabiany Ponteiros

Computação 2. Aula 7. Profª. Fabiany Ponteiros Computação 2 Aula 7 Ponteiros Profª. Fabiany fabianyl@utfpr.edu.br O que são Ponteiros? Um ponteiro é uma variável que contém um endereço de memória. Este endereço é normalmente a posição de uma outra

Leia mais

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02 Programação 1 Atribuição, operadores aritméticos, entrada de dados Técnico em Eletrônica Semestre 5 02 Armazenando na memória tipo de variável #include #include main() { int ano; Declaração

Leia mais

LINGUAGEM C: ESTRUTURAS DEFINIDAS PELO

LINGUAGEM C: ESTRUTURAS DEFINIDAS PELO LINGUAGEM C: ESTRUTURAS DEFINIDAS PELO PROGRAMADOR Prof. André Backes VARIÁVEIS As variáveis vistas até agora podem ser classificados em duas categorias: simples: definidas por tipos int, float, double

Leia mais

Estruturas. Estruturas. Estruturas. Estruturas. Estruturas. Algoritmos e Lógica de Programação. Estruturas. Uniões Enumerações CANSI

Estruturas. Estruturas. Estruturas. Estruturas. Estruturas. Algoritmos e Lógica de Programação. Estruturas. Uniões Enumerações CANSI Algoritmos e Lógica de Programação Linguagem C Reinaldo Gomes reinaldo@cefet-al.br Definição: Éadefiniçãodeumnomeparaumagrupamento de variáveis, podendo ser de tipos diferentes. informações de tipos diferentes

Leia mais

C++ - Matrizes. Observ.: C++ não avisa quando o limite de uma matriz foi excedido. Providenciar a verificação é responsabilidade do programador.

C++ - Matrizes. Observ.: C++ não avisa quando o limite de uma matriz foi excedido. Providenciar a verificação é responsabilidade do programador. C++ - Matrizes É um conjunto de variáveis, do mesmo tipo, referenciadas por um único nome, onde cada variável é diferenciada por meio de um número entre colchetes chamado índice. Declaração : tipo nome

Leia mais

SSC304 Introdução à Programação Para Engenharias. Estruturas. GE4 Bio

SSC304 Introdução à Programação Para Engenharias. Estruturas. GE4 Bio Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Introdução à Para Engenharias Estruturas GE4 Bio GE4Bio Grupo de Estudos em Sinais Biológicos

Leia mais

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

Estrutura de dados 2. Ponteiro. Prof. Jesuliana N. Ulysses

Estrutura de dados 2. Ponteiro. Prof. Jesuliana N. Ulysses 1 3 Estrutura de dados 2 Ponteiro Ponteiro 2 O ponteiro é um tipo de dado como int, char ou float. A diferença do ponteiro ponteiro guardará um endereço de memória. Por meio deste endereço pode-se acessar

Leia mais

Variáveis, Tipos de Dados e Operadores

Variáveis, Tipos de Dados e Operadores ! Variáveis, Tipos de Dados e Operadores Engenharias Informática Aplicada 2.o sem/2013 Profa Suely (e-mail: smaoki@yahoo.com) VARIÁVEL VARIÁVEL É um local lógico, ligado a um endereço físico da memória

Leia mais

LÓGICA DE PROGRAMAÇÃO. Resumo da Linguagem C. Sérgio Carlos Portari Júnior

LÓGICA DE PROGRAMAÇÃO. Resumo da Linguagem C. Sérgio Carlos Portari Júnior LÓGICA DE PROGRAMAÇÃO Resumo da Linguagem C Sérgio Carlos Portari Júnior Tipos de dados mais usados em C Inteiro int 2 bytes Real float 4 bytes Caractere char 1 byte String não existe* xxxxxxx Booleano

Leia mais

Linguagens de Programação I

Linguagens de Programação I Linguagens de Programação I Tema # 4 Operadores em C Susana M Iglesias FUNÇÕES ENTRADA-SAÍDA I/O printf(), utilizada para enviar dados ao dispositivo de saída padrão (stdout), scanf(), utilizada para ler

Leia mais

Vetores. e o programa deverá ler os valores separadamente:

Vetores. e o programa deverá ler os valores separadamente: Vetores Vetor é um tipo de dado usado para representar uma certa quantidade de variáveis de valores homogêneos (do mesmo tipo). Imagine o seguinte problema: calcular a média das notas da prova de 5 alunos.

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Tipos Estruturados Tipo estrutura Definição de novos tipos Aninhamento de Estruturas Vetores de estruturas

Leia mais

Estruturas II UFOP 1/35

Estruturas II UFOP 1/35 BCC 201 - Introdução à Programação I Estruturas II Guillermo Cámara-Chávez UFOP 1/35 Conceito de struct I Vetores e matrizes Estruturas de dados homegêneas Armazenam vários valores, mas todos de um mesmo

Leia mais

Linguagem C - Introdu ção

Linguagem C - Introdu ção Linguagem C - Introdu ção José Gustavo de Souza Paiva Introdução Linguagens de Programa ção Softwares que permitem o desenvolvimento de programas Existem várias linguagens de programação, cada uma com

Leia mais

Computação 2. Aula 6B. Profª. Fabiany Vetor de Estruturas (structs)

Computação 2. Aula 6B. Profª. Fabiany Vetor de Estruturas (structs) Computação 2 Aula 6B Vetor de Estruturas (structs) Profª. Fabiany fabianyl@utfpr.edu.br Vetor de estruturas (structs) Podemos declarar um vetor de estruturas, para isso primeiro definimos um tipo estrutura

Leia mais

Computação Eletrônica. Strings. Prof: Luciano Barbosa. CIn.ufpe.br

Computação Eletrônica. Strings. Prof: Luciano Barbosa. CIn.ufpe.br Computação Eletrônica Strings Prof: Luciano Barbosa Recapitulando: Vetores Representar uma coleção de variáveis de um mesmo tipo em uma dimensão Ex: float notas[5]; ou float notas[5] = {2.5,3.2,1.9,4.1,2.0};

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.8. Estruturas 3.8.1. Introdução 3.8.2. Uso

Leia mais

Computação 2. Aula 2. Profª. Fabiany Vetores e Matrizes

Computação 2. Aula 2. Profª. Fabiany Vetores e Matrizes Computação 2 Aula 2 Vetores e Matrizes Profª. Fabiany fabianyl@utfpr.edu.br Vetores Vetor também é conhecido como variável composta homogênea unidimensional; Um vetor computacional é um variável composta

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 7 Vetores Profa. Marina Gomes marinagomes@unipampa.edu.br 19/05/2017 Engenharia de Computação - Unipampa 1 Motivação Problema: Leia as notas de uma turma de cinco estudantes

Leia mais

20 - Ponteiros em C Parte 1

20 - Ponteiros em C Parte 1 20 - Ponteiros em C Parte 1 Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante 10.4 Ponteiros: Operações Aritméticas

Leia mais

LINGUAGEM C: ARRAY: VETORES E MATRIZES

LINGUAGEM C: ARRAY: VETORES E MATRIZES LINGUAGEM C: ARRAY: VETORES E MATRIZES Prof. André Backes POR QUE USAR ARRAY? As variáveis declaradas até agora são capazes de armazenar um único valor por vez. Sempre que tentamos armazenar um novo valor

Leia mais

Linguagem C: Introdução

Linguagem C: Introdução Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais

Leia mais

CURSO BÁSICO DE PROGRAMAÇÃO AULA 15. Revisão Vetores e Matrizes Trabalho

CURSO BÁSICO DE PROGRAMAÇÃO AULA 15. Revisão Vetores e Matrizes Trabalho CURSO BÁSICO DE PROGRAMAÇÃO AULA 15 Revisão Vetores e Matrizes Trabalho Definição: Introdução a Linguagem C Vetores Estrutura que permite armazenar um conjunto de dados do mesmo tipo na mesma variável;

Leia mais

Tipos Estruturados. Tipos Estruturados

Tipos Estruturados. Tipos Estruturados Tipos Estruturados Até aqui trabalhamos apenas com tipos básicos (disponibilizados pela linguagem), mas para desenvolver programas mais complexos é necessário trabalhar de uma maneira mais abstrata para

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: tipos de dados definidos pelo programador: struct union enum typedef

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: tipos de dados definidos pelo programador: struct union enum typedef Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: tipos de dados definidos pelo programador: struct union enum typedef Prof. Renato Pimentel 1 Introdução Tipos de variáveis vistos

Leia mais

VETORES ADAPTADO DO MATERIAL DE PROF. L. A. ALVARES

VETORES ADAPTADO DO MATERIAL DE PROF. L. A. ALVARES VETORES ADAPTADO DO MATERIAL DE PROF. L. A. ALVARES SEJA O PROBLEMA: LER 30 VALORES E CALCULAR A MÉDIA ARITMÉTICA DOS MESMOS. Pergunta-se: Quantas variáveis serão necessárias para ler os 30 valores? 30?

Leia mais

Estruturas de Dados. Nem sempre, a manipulação de dados é feita por simples elementos...

Estruturas de Dados. Nem sempre, a manipulação de dados é feita por simples elementos... Estruturas de Dados Nem sempre, a manipulação de dados é feita por simples elementos... Vetores, Matrizes e Strings Programação de Computadores 1 de 27 Estruturas de Dados Estruturas de dados permitem

Leia mais

EXERCÍCIO DE SONDAGEM TURMA 02 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota

EXERCÍCIO DE SONDAGEM TURMA 02 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Disciplina: Técnicas de Programação Prof.: José Eustáquio Rangel de Queiroz EXERCÍCIO

Leia mais

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica Introdução a Programação Ponteiros e Strings, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos a relação entre ponteiros e strings Ponteiros para strings X Vetores de Caracteres Vetores de ponteiros

Leia mais

Tipos de Dados, Variáveis e Entrada e Saída em C. DCC 120 Laboratório de Programação

Tipos de Dados, Variáveis e Entrada e Saída em C. DCC 120 Laboratório de Programação Tipos de Dados, Variáveis e Entrada e Saída em C DCC 120 Laboratório de Programação Variáveis Uma variável representa um espaço na memória do computador para armazenar um determinado tipo de dado. Em C,

Leia mais

48 { printf("ocorreu um erro o arquivo nao pode ser aberto\n");

48 { printf(ocorreu um erro o arquivo nao pode ser aberto\n); 1 /*Exemplo: O programa abaixo faz a inclusão, consulta (por acesso seqüencial e acesso direto), 2 a alteração, a exclusão e a reorganização de um arquivo que contem o modelo, a marca e o preço de um veículo.*/

Leia mais

Estrutura de Dados. Struct (Registro) Lais Farias Alves

Estrutura de Dados. Struct (Registro) Lais Farias Alves Estrutura de Dados Struct (Registro) Lais Farias Alves Conceito de Struct Struct (Registro). Um registro (=record) é uma coleção de várias variáveis, possivelmente de tipos diferentes. Na linguagem C,

Leia mais

EXERCÍCIO DE SONDAGEM SEMESTRE DATAS: 21/06/2016 (TURMAS 01 E 02) Matrícula Nome Nota

EXERCÍCIO DE SONDAGEM SEMESTRE DATAS: 21/06/2016 (TURMAS 01 E 02) Matrícula Nome Nota Professor de INTRODUÇÃO À PROGRAMAÇÃO Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Disciplina: Técnicas de Programação Prof.:

Leia mais

Quantas variáveis para armazenar as notas e as médias são necessárias para resolver este problema?

Quantas variáveis para armazenar as notas e as médias são necessárias para resolver este problema? Matrizes Problema: Ler as 5 notas de 7 alunos (identificados por um número entre e 6), calcular a média de cada aluno, e após imprimir as notas e médias dos alunos, classificados pela média. Quantas variáveis

Leia mais

Programação Orientada a Objetos. Giselle Lopes Ferrari Ronque

Programação Orientada a Objetos. Giselle Lopes Ferrari Ronque Programação Orientada a Objetos Giselle Lopes Ferrari Ronque ferrari@eletrica.ufpr.br Avaliações Provas 27/03/2015 15/05/2015 Trabalhos 12 e 19/06/2015 Segunda chamada: 26/06/2015 Exame: 10/07/2015 Regras

Leia mais

Estruturas de Dados. Nem sempre, a manipulação de dados é feita por simples elementos... Vetores, Matrizes e Strings Introdução à Computação 1 de 27

Estruturas de Dados. Nem sempre, a manipulação de dados é feita por simples elementos... Vetores, Matrizes e Strings Introdução à Computação 1 de 27 Estruturas de Dados Nem sempre, a manipulação de dados é feita por simples elementos... Vetores, Matrizes e Strings Introdução à Computação 1 de 27 Estruturas de Dados Estruturas de dados permitem que

Leia mais

A sintaxe para se declarar uma variável do tipo ponteiro é dada por:

A sintaxe para se declarar uma variável do tipo ponteiro é dada por: Pense duas vezes e faça uma vez. Provérbio Chinês. PONTEIROS Um ponteiro nada mais é que uma variável capaz de armazenar um número hexadecimal que corresponde a um endereço de memória de outra variável.

Leia mais

1ª Lista de Exercícios

1ª Lista de Exercícios Universidade Federal do Rio de Janeiro Data: 26/04/05 Disciplina: Computação I 1ª Lista de Exercícios 1) Faça um programa, em pseudo-código, que peça ao usuário que informe n números reais e então calcule

Leia mais

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa? Funções Suponha um conjunto habitacional, com várias famílias...... imagina se todas elas morassem em uma única casa? Funções Programação de Computadores 1 de 28 Funções Na Programação, funções são conjuntos

Leia mais

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa? Funções Suponha um conjunto habitacional, com várias famílias...... imagina se todas elas morassem em uma única casa? Funções Introdução à Computação 1 de 28 Funções Na Programação, funções são conjuntos

Leia mais

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem

Leia mais

Programação de Computadores I Funções Básicas da Linguagem C PROFESSORA CINTIA CAETANO

Programação de Computadores I Funções Básicas da Linguagem C PROFESSORA CINTIA CAETANO Programação de Computadores I Funções Básicas da Linguagem C PROFESSORA CINTIA CAETANO Função Printf() Sintaxe printf( expressão de controle, argumentos); É uma função padrão para exibir uma mensagem na

Leia mais

Introdução a Programação de Jogos

Introdução a Programação de Jogos Introdução a Programação de Jogos Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição

Leia mais

SITUAÇÃO VETORES. Imagine o seguinte problema:

SITUAÇÃO VETORES. Imagine o seguinte problema: 13/08/2014 PROF. FABIANO TAGUCHI http://fabianotaguchi.wordpress.com ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO AULA 07 VETORES MATRIZES EXERCÍCIOS 1 SITUAÇÃO Imagine o seguinte problema: Crie um programa que

Leia mais

Computação Informática

Computação Informática Computação Informática Linguagem C Matrizes em C Aula N. 05 Prof. SIMÃO Jean Marcelo SIMÃO 1 Estrutura de Dados Homogênea matrizes Uma matriz computacional é um váriável composta capaz de armazenar uma

Leia mais

Linguagem C (repetição)

Linguagem C (repetição) Linguagem C (repetição) André Tavares da Silva andre.silva@udesc.br Exercício Escrever um programa que conte (mostre na tela) os números de 1 a 100. Comandos aprendidos até o momento: printf, scanf, getchar,

Leia mais

Aula 2 Comandos de Decisão

Aula 2 Comandos de Decisão Departamento de Sistemas de Computação Universidade de São Paulo SSC 502 Laboratório de Introdução a Ciência de Computação I Aula 2 Comandos de Decisão Responsável Prof. Seiji Isotani (sisotani@icmc.usp.br)

Leia mais

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

#include <stdio.h> Void main() { printf( Cheguei!\n); } INTRODUÇÃO A LINGUAGEM C #include Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C ANTES DO C ERA A LINGUAGEM B B foi essencialmente uma simplificação da linguagem BCPL. B só tinha um tipo de dado, que

Leia mais

SSC304 Introdução à Programação Para Engenharias. Variáveis Indexadas em C. GE4 Bio

SSC304 Introdução à Programação Para Engenharias. Variáveis Indexadas em C. GE4 Bio Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Introdução à Para Engenharias Variáveis Indexadas em C GE4 Bio GE4Bio Grupo de Estudos

Leia mais

Matrizes em C. Lucas Ferrari de Oliveira Professor Adjunto. Universidade Federal do Paraná

Matrizes em C. Lucas Ferrari de Oliveira Professor Adjunto. Universidade Federal do Paraná em C Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná Uma matriz é uma coleção de variáveis do mesmo tipo que é referenciada por um nome comum; Em C todas as matrizes consistem

Leia mais

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas 03/03/2010 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa

Leia mais

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática Capítulo 1: Introdução à Linguagem C Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso caso, a linguagem C.

Leia mais

Linguagem C ponteiros

Linguagem C ponteiros Linguagem C ponteiros IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Introdução à linguagem C... Vetores Matrizes Funções Recursão Registros Aula

Leia mais

EXERCÍCIO DE SONDAGEM TURMA 01 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota

EXERCÍCIO DE SONDAGEM TURMA 01 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Disciplina: Técnicas de Programação Prof.: José Eustáquio Rangel de Queiroz EXERCÍCIO

Leia mais

Estruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char?

Estruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? 1 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa o

Leia mais

Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011

Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011 Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011 Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa

Leia mais

FUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara

FUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara Universidade do Estado de Minas Gerais - UEMG Curso de Engenharia da Computação FUNÇÕES EM C 1 Material adaptado da profa Silvana Maria Affonso de Lara ROTEIRO DA AULA Definição de Função Argumentos, retornos

Leia mais

19 - Ponteiros em C Parte 1

19 - Ponteiros em C Parte 1 19 - Ponteiros em C Parte 1 Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante 10.1 Ponteiros: Definições

Leia mais

Introdução à Programação

Introdução à Programação Programação de Computadores Introdução à Programação Prof. Helton Fábio de Matos hfmatos@dcc.ufmg.br Agenda Algoritmo & Programa Variáveis Declaração de tipos Comando de entrada ou de leitura Comando de

Leia mais

Aula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU

Aula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU Aula 6 Oficina de Programação Estruturas Condicionais no C Profa. Elaine Faria UFU - 2017 Estrutura Condicional Simples Algoritmo se () entao instrução fimse A instrução só será executada se

Leia mais

INF 1620 P1-13/09/02 Questão 1 Nome:

INF 1620 P1-13/09/02 Questão 1 Nome: INF 1620 P1-13/09/02 Questão 1 Considere que o cálculo da multa para o pagamento de um determinado imposto varia de acordo com a tabela a seguir: Valor do Imposto Original Multa por mês de atraso até R$

Leia mais

11a. Aula Ponteiros e Vetores

11a. Aula Ponteiros e Vetores 11a. Aula Ponteiros e Vetores 2013.2 2 É um tipo de variável com uma ressalva...... armazena apenasendereçode memória (ou null) Se eu tiver o endereço da casa de Francisca, eu poderei visitá-la e lhe fazer

Leia mais

char *strchr (const char *str, int ch);

char *strchr (const char *str, int ch); Ponteiros / Vetores e Strings - strchr Sua forma geral é: char *strchr (const char *str, int ch); A função strchr() devolve um ponteiro à primeira ocorrência do byte menos significativo de ch na string

Leia mais

Modulo 3: Else, Case, For...

Modulo 3: Else, Case, For... PROGRAMAÇÃO DE COMPUTADORES V - TCC- 00.323 Modulo 3: Else, Case, For... Aura - Erick aconci@ic.uff.br, erickr@id.uff.br Roteiro Mais Comandos Condicionais Estrutura de Repetição Contável 2 Exemplo de

Leia mais

Linguagem C. Prof.ª Márcia Jani Cícero

Linguagem C. Prof.ª Márcia Jani Cícero Linguagem C Prof.ª Márcia Jani Cícero A estrutura Básica de um Programa em C Consiste em uma ou várias funções ou programas. main( ) // primeira função a ser executada // inicia a função // termina a função

Leia mais

Estruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C

Estruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Estruturas de Dados Revisão de Ponteiros Prof. Ricardo J. G. B. Campello Sumário Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Operações Ponteiros e Arranjos

Leia mais

Estruturas. K&R: Capitulo 6. Estruturas IAED, 2014/2015. Introdução às Estruturas Estruturas e Funções Vectores de Estruturas Typedef Exemplo

Estruturas. K&R: Capitulo 6. Estruturas IAED, 2014/2015. Introdução às Estruturas Estruturas e Funções Vectores de Estruturas Typedef Exemplo Estruturas K&R: Capitulo 6 Estruturas Introdução às Estruturas Estruturas e Funções Vectores de Estruturas Typedef Exemplo 2 1 Motivação Definir uma representação agregada na linguagem C para manipular

Leia mais

GEQ Prof. Paulo R. Coelho. Lista para prova

GEQ Prof. Paulo R. Coelho. Lista para prova GEQ007 2013 Prof. Paulo R. Coelho Lista para prova 7. Defina uma estrutura empregado para armazenar nome, data de nascimento, idade e salário de um empregado de uma empresa. Leia informações sobre 10 empregados

Leia mais

Introdução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes

Introdução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes Introdução à Programação Introdução a Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Introdução Variáveis Tipos de dados Operadores e Expressões: Operadores

Leia mais

Aula 8 Oficina de Programação Vetores. Profa. Elaine Faria UFU

Aula 8 Oficina de Programação Vetores. Profa. Elaine Faria UFU Aula 8 Oficina de Programação Vetores Profa. Elaine Faria UFU - 2017 Variáveis Compostas Homogêneas O que uma variável composta homogênea? - Conjunto de variáveis do mesmo tipo - É chamada de forma geral

Leia mais

Linguagem C (estruturas condicionais)

Linguagem C (estruturas condicionais) Linguagem C (estruturas condicionais) André Tavares da Silva atavares@joinville.udesc.br Comandos de Controle de Fluxo Todos os comandos devem ser terminados com um ;. { e são usados para delimitar um

Leia mais

13 Registros (Structs)

13 Registros (Structs) 13 Registros (Structs) Apesar das facilidades introduzidas até agora na manipulação de variáveis de diversos tipos, em certos momentos podemos estar interessados em agrupar várias delas em uma única entidade.

Leia mais

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento Hello World Linguagem C printf("hello world!\n"); main é a função principal, a execução do programa começa por ela printf é uma função usada para enviar dados para o vídeo Palavras Reservadas auto double

Leia mais

Linguagem de Programação C

Linguagem de Programação C ICMC USP Linguagem de Programação C Aula: Comandos em C Prof. Dr Alneu de Andrade Lopes O comando if Se condição verdadeira (1) executa comando ou sequencia de comandos. Forma geral: if (condição) { sequência_de_comandos_1;

Leia mais

LÓGICA DE PROGRAMAÇÃO (C) VETORES E MATRIZES. Professor Carlos Muniz

LÓGICA DE PROGRAMAÇÃO (C) VETORES E MATRIZES. Professor Carlos Muniz Vetores são estruturas de dados que armazenam usualmente uma quantidade fixa de dados de um certo tipo; por esta razão, também são conhecidos como estruturas homogêneas de dados. Internamente, um vetor

Leia mais

Fundamentos de Programação1

Fundamentos de Programação1 Fundamentos de Programação1 Linguagem C Introdução e elementos principais Aula N. 01 Prof. SIMÃO Jean Marcelo SIMÃO 1 Exemplo 2 % código em Octave/Matlab clc; A = 5; A = 4 ; if ( A > B ) printf ( A é maior

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: ponteiros e alocação dinâmica Prof. Renato Pimentel 1 Ponteiros 2 Prof. Renato Pimentel 1 Ponteiros: introdução Toda a informação

Leia mais

TÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO

TÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO TÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO Ponteiros Definição Variável: área de memória que armazena dados de um certo tipo. Na memória, toda variável possui um endereço. Um Ponteiro é uma variável especial

Leia mais

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S PROGRAMAÇÃO I VA R I Á V E I S, C O N S TA N T E S, O P E R A D O R E S E N T R A DA E S A Í DA D E DA D O S Variáveis 2 Variáveis são locais onde são armazenados os valores na memória. Toda variável é

Leia mais

19 Vetores, Ponteiros e Funções

19 Vetores, Ponteiros e Funções 19 Vetores, Ponteiros e Funções Ronaldo F. Hashimoto e Carlos H. Morimoto Oobjetivodestaaulaérelacionarotipovetor com ponteiros eassimentendercomoutilizarvetorescomo parâmetros de funções. Ao final dessa

Leia mais

Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton

Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton nilton@comp.uems.br Introdução A linguagem C foi inventada por Dennis Ritchie e

Leia mais