Prévia do material em texto
Laboratório de Informática C: EstruturasC: Estruturas Adaptado do material da Profª Ms. Lília Marta Brandão Soussa Modesto 1 Estruturas Em C uma estrutura é uma coleção de variáveis referenciadas por um nome Maneira conveniente de ter informações relacionadas agrupadas Criação do Tipo endereco struct tEndereco { char nome[30]; char rua[40]; char cidade[40]; } ; struct tEndereco vMeuendereco; 2 Elementos ou campos da estrutura Variável declarada do tipo endereco Criação do Tipo endereco Estruturas Se você precisa apenas declarar uma variável: struct { char nome[30]; char rua[40]; char cidade[40]; } enderecoresidencial, enderecocomercial; 3 Estruturas Os campos da estrutura são referenciados usando o operador “.” : struct { char nome[30]; char rua[40];char rua[40]; char cidade[40]; } enderecoresidencial, enderecocomercial; enderecoresidencial.nome = “Luis”; printf(“%s”, enderecoresidencial.nome); 4 Estruturas Exemplo: criar um programa que armazene o nome do aluno, suas 3 notas e a média aritmética e depois apresente essas informações imprimindo o status “Aprovado” caso a média seja maior ou igual a 7,0 ou “Reprovado” se for menor que 7,0.“Reprovado” se for menor que 7,0. 5 Estruturas #include <stdio.h>#include <stdlib.h> int main(void){ struct { char nome[20]; float nota1; float nota2; float nota3; float media } aluno; 6 printf("\n Digite o nome do aluno: \n"); fgets(aluno.nome, 20, stdin); printf("\n Digite a primeira nota do aluno: \n"); scanf("%f", &aluno.nota1); printf("\n Digite a segunda nota do aluno: \n"); scanf("%f", &aluno.nota2); printf("\n Digite a terceira nota do aluno: \n"); scanf("%f", &aluno.nota3); aluno.media = (aluno.nota1 + aluno.nota2 + aluno.nota3 )/3; Estruturas printf("\n Seguem os dados do aluno: \n"); printf("\n %s \n", aluno.nome); printf("\n %.2f \n", aluno.nota1); printf("\n %.2f \n", aluno.nota2); printf("\n %.2f \n", aluno.nota3); printf("\n %.2f \n", aluno.media); if (aluno.media >= 7) printf("\n Aprovado! \n"); else printf("\n Reprovado! \n"); system ("pause"); 7 system ("pause"); return(0); } Estruturas Exercícios: criar um programa que armazene o nome do funcionário, seu salário e a quantidade de filhos. Se o funcionário tiver mais de 3 filhos, aumentar o seu salário em 10%; se o funcionário tiver 2 ou 3 filhos, aumentar seu salário em 5%. Apresentar asaumentar seu salário em 5%. Apresentar as informações: nome do funcionário, quantidade de filhos, salário ajustado. 8 Uso conjunto de Estruturas com Vetores e Matrizes Exemplo: Criar um programa em C que armazene em um vetor a lista dos 10 alunos de LCI com o nome do aluno, suas 3 notas e a média aritmética. Depois, apresente a lista de alunos com o status ao lado de cada um, considerando:status ao lado de cada um, considerando: “Aprovado!” para médias maiores ou iguais a 7,0, “Exame final!” para médias menores que 7,0 e maiores ou iguais a 5,0 e “Reprovado!” para médias menores que 5,0. 9 Estruturas #include <stdio.h> #include <stdlib.h> int main(void){ struct tAluno { char nome[20]; float nota1; float nota2; float nota3; float media; } vAluno; struct tAluno listaAluno[10]; int i; for(i=0; i<10; i++) { 10 for(i=0; i<10; i++) { printf("\n Digite o nome do %d aluno: \n", i+1); fflush(stdin); fgets(vAluno.nome, 20, stdin); printf("\n Digite a primeira nota do %d aluno: \n", i+1); scanf("%f", &vAluno.nota1); printf("\n Digite a segunda nota do aluno: \n", i+1); scanf("%f", &vAluno.nota2); printf("\n Digite a terceira nota do aluno: \n", i+1); scanf("%f", &vAluno.nota3); vAluno.media = (vAluno.nota1 + vAluno.nota2 + vAluno.nota3 )/3; listaAluno[i] = vAluno; } Estruturas printf("\n Seguem os dados dos alunos: \n"); for(i=0; i<10; i++) { printf("\n %s Nome:", listaAluno[i].nome); printf(" Nota 1: %.2f", listaAluno[i].nota1); printf(" Nota 2: %.2f", listaAluno[i].nota2); printf(" Nota 3: %.2f", listaAluno[i].nota3); printf(" Media: %.2f", listaAluno[i].media); if (listaAluno[i].media >= 7) printf(" Aprovado! \n"); else if ((listaAluno[i].media < 7) && (listaAluno[i].media >= 5)) 11 else if ((listaAluno[i].media < 7) && (listaAluno[i].media >= 5)) printf(" Exame final! \n"); else printf(" Reprovado! \n"); } system ("pause"); return(0); } Exercícios de Estruturas com Vetores e Matrizes 1. Criar um programa que armazene uma lista de 10 funcionários. Cada funcionário possui o nome do funcionário, seu salário e a quantidade de filhos. Se o funcionário tiver mais de 3 filhos, aumentar o seu salário em 10%; se o funcionário tiver 2 ou 3 filhos, aumentar seu salário em 5%. Apresentar as informações: nome do funcionário, quantidade de filhos, salário ajustado. Usar struct e vetores. 2. Ajustar o programa acima para criar uma lista de 10 funcionários 12 2. Ajustar o programa acima para criar uma lista de 10 funcionários para cada um dos 3 departamentos de uma empresa. Ao final apresentar para cada departamento a lista de funcionários de cada departamento (nome do funcionário, quantidade de filhos, salário ajustado) e ao final de cada lista, o salário médio do departamento. Usar struct e matriz. Laboratório de Informática C: EstruturasC: Estruturas Adaptado do material da Profª Ms. Lília Marta Brandão Soussa Modesto 13