Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa
Prof. Yandre Maldonado - 2 Linguagem C: Desenvolvida por Dennis Ritchie nos laboratórios da AT&T Bell (EUA) no início dos anos 70; Algol Algol (1960 (1960 Europa) Europa) BCPL BCPL (Inglaterra) (Inglaterra) C é uma das linguagens de maior aceitação: Portabilidade (Compiladores disponíveis para PC s, Mainframes, etc.) Muitos compiladores C produzem código bastante otimizado; Reúne tanto características de alto nível quanto de baixo nível (muitas vezes chamada de nível médio); Em 1983 foi criado o comitê ANSI-C; B (1970 (1970 EUA) EUA) C (1972 (1972 EUA) EUA)
Prof. Yandre Maldonado - 3 C vs. C++ C C++ Linguagem C: linguagem de programação imperativa estruturada; Linguagem C++: Linguagem Orientada a Objetos; Formadas pela linguagem C adicionada de um conjunto de instruções voltados à OO; Quem sabe programar em C conhece a maior parte de C++;
Prof. Yandre Maldonado - 4 Turbo C vs. Turbo Pascal Termos básicos similares; Algumas funções semelhantes; C tem maior controle direto sobre o computador; O C possui fraca verificação de erros; A linguagem C é case sensitive ; C é a linguagem de um programador Herbert Schildt
Prof. Yandre Maldonado - 5 A linguagem C é utilizada na criação de diversos tipos de aplicação, tais como: Sistemas Operacionais; Processadores de Texto; Planilhas Eletrônicas; Sistemas Gerenciadores de BD; Processadores Gráficos; Problemas de Engenharia; Compiladores; C é uma linguagem versátil
Prof. Yandre Maldonado - 6 C: linguagem de nível médio; C Alto nível: --Estruturada; --Modular; --Portátil; Baixo nível: --Linguagem de de máquina; --Bits e bytes; --Endereços de de memória;
Prof. Yandre Maldonado - 7 Primeiros passos na Linguagem C: C é case sensitive: Pode-se declarar quatro variáveis diferentes com os nomes Soma, soma, SOMA e SoMa, embora não seja recomendável na maioria das vezes; Todas as palavras reservadas da linguagem C devem ser descritas em letra minúscula, assim temos: for : palavra reservada que rotula a estrutura de repetição para ; if : palavra reservada que rotula a estrutura de seleção se ; For : poderia ser um nome de variável; If : poderia ser um nome de variável;
Prof. Yandre Maldonado - 8 Estrutura básica de um programa em C: Todo programa em C possui no mínimo uma função; A função main() é obrigatória e é a primeira a ser executada. É a função principal, o ponto de partida do programa que será criado; Por isso, a noção de função e de programa freqüentemente se confundem quando se programa em linguagem C;
Prof. Yandre Maldonado - 9 Forma geral de um programa em C: inclusão de arquivos de cabeçalho declaração de variáveis globais main () declaração da função principal (obrigatória). Os parênteses indicam que trata-se de uma função toda função começa com o símbolo, equivale ao início (begin) de um bloco de instruções declaração de variáveis locais... comandos;... toda função termina com o símbolo, equivale ao fim (end) de um bloco de instruções As instruções descritas no programa terminam sempre com ;, como na linguagem Pascal.
Prof. Yandre Maldonado - 10 O menor programa possível em C seria: main () É um programa vazio, que não contém instruções para executar; Formatação dos programas: é livre, mas convém manter a legibilidade; main main () () main main () () Bons exemplos main main (( )) main main () () Maus exemplos
Prof. Yandre Maldonado - 11 auto do goto short union Comentários: podem ser incluídos em qualquer parte do programa. Se ocupar apenas uma linha, basta que a mesma seja iniciada com // ; Se ocupar mais de uma linha, o comentário deve iniciar com o símbolo /* e terminar com o símbolo */ ; Palavras reservadas da Linguagem C: break double if signed unsigned case else int sizeof void char enum long static volatile const extern main struct while continue float register switch default for return typedef
Prof. Yandre Maldonado - 12 Exercícios: Por que pode-se dizer que C é uma linguagem de nível médio? Fale sobre características positivas e negativas da linguagem C. Descreva a relação existente entre a linguagem C e C++.
Prof. Yandre Maldonado - 13 Instruções de programa: printf() Função de E/S; Para utilizá-la deve-se incluir no cabeçalho o arquivo stdio.h (standard i/o); Forma geral: printf(string_de_controle, lista_de_argumentos); Primeiro programa em C: #include #include <stdio.h> <stdio.h> #include #include <conio.h> <conio.h> void void main main () () printf printf ( Oi ( Oi mundo. ); mundo. ); getch getch (); (); #include #include <stdio.h> <stdio.h> #include #include <conio.h> <conio.h> void void main() main() clrscr(); clrscr(); printf("oi printf("oi mundo"); mundo"); getch getch (); ();
Prof. Yandre Maldonado - 14 scanf() Função de E/S; Para utilizá-la deve-se incluir no cabeçalho o arquivo stdio.h (standard i/o); Forma geral: scanf(string_de_controle, lista_de_argumentos); Expressão de controle \n : pode ser Código %c utilizada dentro da string de controle %d para iniciar uma nova linha; %ld Long %e Códigos de Formatação %f %o %s %u %x Significado Caractere simples Decimal Notação científica Ponto flutuante Octal Cadeia de caracteres Decimal sem sinal Hexadecimal
Prof. Yandre Maldonado - 15 Tipos de variáveis: Tipo Bits Escala void 0 Sem valor char 8-128 a 127 int 16-32768 a 32767 float 32-3.4E+38 a 3.4E+38 double 64-1.7E+308 a 1.7E+308 long int 32-3.4E+38 a 3.4E+38 unsigned char 8 0 a 255 unsigned int 16 0 a 65535
Prof. Yandre Maldonado - 16 Declaração de variáveis: tipo nome; Regras gerais: Declarar antes do uso; Incluir na declaração o nome e tipo da variável; Na ocorrência de mais de uma variável de mesmo tipo, podemos declará-las separando seus nomes por vírgulas em uma mesma linha; Em C, não existe tipo booleano (lógico) e nem string (cadeia); O valor zero (0) é considerado falso e qualquer outro valor é considerado verdadeiro; Exemplos: int K; double valores; float quadro; char caracter;
Prof. Yandre Maldonado - 17 Introdução à Linguagem C Outras funções de E/S: putchar() A função putchar() imprime uma variável do tipo caracter na tela; Arquivo de inclusão: <stdio.h> Exemplo: #include #include <stdio.h> <stdio.h> #include <conio.h> #include <conio.h> main() main() char char letra; letra; clrscr(); clrscr(); letra='a'; letra='a'; putchar(letra); putchar(letra); getch(); getch();
Prof. Yandre Maldonado - 18 Introdução à Linguagem C Outras funções de E/S: getch() A função getch() lê um caractere do teclado sem ecoá-lo na tela (no turbo C); Arquivo de inclusão: <conio.h> Exemplo: #include #include <stdio.h> <stdio.h> #include <conio.h> #include <conio.h> main() main() char char letra; letra; clrscr(); clrscr(); printf printf ("Digite ("Digite um um caracter: caracter: "); "); letra=getch(); letra=getch(); printf ("\ncaractere digitado: %c\n", letra); printf ("\ncaractere digitado: %c\n", letra); getch (); getch ();
Prof. Yandre Maldonado - 19 Introdução à Linguagem C Outras funções de E/S: getche() A função getche() lê um caractere do teclado e imprime o mesmo na tela; Arquivo de inclusão: <conio.h> Exemplo: #include #include <stdio.h> <stdio.h> #include <conio.h> #include <conio.h> main() main() char char letra; letra; clrscr(); clrscr(); printf printf ("Digite ("Digite um um caracter: caracter: "); "); letra=getche(); letra=getche(); printf ("\ncaractere digitado: %c", letra); printf ("\ncaractere digitado: %c", letra); getch (); getch ();
Prof. Yandre Maldonado - 20 Programa para calcular a área de um círculo: #include <stdio.h> #include <conio.h> main () () float R, R, Area; clrscr(); printf ("Digite o raio da da circunferencia: "); "); scanf ("%f",&r); Area = 3.14*R*R; printf ("A ("A area do do circulo e igual a: a: %f\n\n",area); getch (); ();
Prof. Yandre Maldonado - 21 Exercícios: Faça um programa em C para calcular o volume de um cilindro a partir dos valores da altura e do raio do mesmo. Dica: V=h*π*R 2 ; Faça um programa em C para calcular as raízes reais de uma equação do segundo grau do tipo ax 2 +bx+c=0. Dica: =b 2-4*a*c; x 1 =(-b+delta 1/2 )/(2*a); x 2 =(-b-delta 1/2 )/(2*a);
Prof. Yandre Maldonado - 22 #include <stdio.h> #include <conio.h> #include <math.h> Volume do Cilindro void void main main () () float float R, R, H, H, V; V; printf ("Calculo do do Volume de de um um Cilindro\n\n"); printf ("Digite o valor valor do do raio raio da da base base do do cilindro: "); "); scanf scanf ("%f", &R); &R); printf ("Digite o valor valor da da altura do do cilindro: "); "); scanf scanf ("%f", &H); &H); V=3.14*pow(R,2)*H; printf ("\n\no Volume do do Cilindro igual igual a: a: %.2f", V); V); printf ("\n\n\nfim da da execução!\n"); getch();
Prof. Yandre Maldonado - 23 #include #include <stdio.h> <stdio.h> #include #include <conio.h> <conio.h> #include #include <math.h> <math.h> void void main main () () float float a, a, b, b, c, c, delta, delta, x1, x1, x2; x2; printf printf ("Calculo ("Calculo das das ra zes ra zes reais reais da da equacao equacao do do tipo tipo ax2+bx+c=0\n\n"); printf printf ("Digite ("Digite o valor valor do do coeficiente coeficiente a: a: "); "); scanf scanf ("%f", ("%f", &a); &a); printf printf ("Digite ("Digite o valor valor do do coeficiente coeficiente b: b: "); "); scanf scanf ("%f", ("%f", &b); &b); printf printf ("Digite ("Digite o valor valor do do coeficiente coeficiente c: c: "); "); scanf scanf ("%f", ("%f", &c); &c); delta=b*b-4*a*c; delta=b*b-4*a*c; x1=(-b+sqrt(delta))/(2*a); x2=(-b-sqrt(delta))/(2*a); printf printf ("\n\no ("\n\no valor valor de de x1 x1 : : %f", %f", x1); x1); printf printf ("\ne ("\ne o valor valor de de x2 x2 : : %f", %f", x2); x2); printf printf ("\n\n\nfim ("\n\n\nfim da da execução!\n\n"); execução!\n\n"); getch getch (); (); Raízes da Equação do 2º grau
Operadores: Introdução à Linguagem C Prof. Yandre Maldonado - 24 Op. = *= /= %= += -= + Significado Atribuição Aritmético de atribuição (multiplicação) Aritmético de atribuição (divisão) Aritmético de atribuição (módulo) Aritmético de atribuição (adição) Aritmético de atribuição (subtração) Soma Exemplo A=5; caracter= B ; N*=2; equivale a N=N*2; N/=4; equivale a N=N/4; N%=5; equivale a p igual ao resto da divisão de p por 5; N+=3; equivale a N=N+3; N-=2; equivale a N=N-2; A=A+1; - Subtração Total=subtotal-desconto; * Multiplicação nota=nota*2; / Divisão Comissão=lucro/4; % Módulo (retorna o resto da divisão) Resto=8%3; ++ Incrementa de um o operando i++; -- Decrementade um o operando j--;
Prof. Yandre Maldonado - 25 Alguns cuidados devem ser tomados quando se utiliza os operadores de incremento: k=3*n++; é equivalente a k=(3*n); n=n+1; k=3*++n é equivalente a n=n+1; k=3*(n);
Prof. Yandre Maldonado - 26 Outros operadores: Relacionais: Op. > >= < <= == Significado Maior Maior igual Menor Menor igual Igual!= Diferente Lógicos: Op. Significado && Lógico E Lógico OU! Lógico de negação
Prof. Yandre Maldonado - 27 Tabela de precedência de operadores: Op. Tipo ++ Incremento -- Decremento! Lógico Não * Multiplicação / Divisão % Resto + - < <= > >= Adição Subtração Menor Menor igual Maior Maior igual
Prof. Yandre Maldonado - 28 Op. < <= > >= ==!= && = *= /= %= += -= Tipo Menor Menor igual Maior Maior igual Igual Diferente E (lógico) OU (lógico) Atribuição Atribuição (mult.) Atribuição (div.) Atribuição (resto) Atribuição (adição) Atribuição (subt.)
Prof. Yandre Maldonado - 29 Comandos de Decisão (Estruturas de Seleção) if-else; if if (expressão (expressão de de teste) teste) switch; instrução instrução 1; 1; instrução instrução 2; Comando if-else Bloco 1 2;...... instrução Estrutura geral instrução n; n; else Esta estrutura de seleção é else instrução capaz de tomar uma decisão instrução 1; 1; instrução instrução 2; 2; simples, se a expressão de Bloco 2...... instrução instrução n; n; teste for verdadeira, o bloco de instruções 1 será executado e o 2 ignorado. Se a expressão de teste for falsa acontecerá o contrário; A palavra else pode ser omitida juntamente com o seu bloco de instruções (bloco 2). Neste caso, caso a expressão de teste seja falsa, a execução salta para a próxima instrução seguinte ao bloco 1;
Prof. Yandre Maldonado - 30 Exemplo de programa com if-else: dados dois valores inteiros X e Y descubra qual é o maior; #include #include <stdio.h> <stdio.h> #include #include <conio.h> <conio.h> void void main() main() int int X, X, Y; Y; printf printf ("Digite ("Digite um um valor valor inteiro inteiro para para X: X: "); "); scanf scanf ("%d", ("%d", &X); &X); printf printf ("Digite ("Digite um um valor valor inteiro inteiro para para Y: Y: "); "); scanf scanf ("%d", ("%d", &Y); &Y); if if (X>Y) (X>Y) printf printf ("O ("O valor valor de de X X é é maior maior que que o o de de Y.\n"); Y.\n"); else else printf printf ("O ("O valor valor de de Y Y é é maior maior que que o o de de X.\n"); X.\n"); getch getch (); ();
Prof. Yandre Maldonado - 31 O comando switch: Instrução de seleção múltipla; Equivalente ao case do Pascal; Permite a seleção exclusiva de um entre vários blocos de instruções; Forma geral switch switch (expressão) (expressão) case case constante1: constante1: instrução instrução 1; 1;...... instrução instrução n; n; break; break; case case constante2: constante2: instrução instrução 1; 1;...... instrução instrução n; n; break; break;...... case case constante constante n: n: instrução instrução 1; 1;...... instrução instrução n; n; break; break; default: default: instrução instrução 1; 1;...... instrução instrução n; n;
Prof. Yandre Maldonado - 32 Observações referentes à sintaxe: O corpo do switch deve estar entre chaves; O corpo de cada case pode conter um número qualquer de instruções, sendo que a última deve ser um break. Caso este break não apareça, todas as instruções que estiverem dentro do switch (inclusive dos demais case s) que aparecerem na seqüência serão executadas; A instrução break causa a saída imediata do corpo do switch; Quando a instrução switch é executada, a expressão é avaliada e o controle é transferido diretamente para o grupo de instruções correspondentes ao valor de expressão;
Prof. Yandre Maldonado - 33 Se nenhum case corresponder ao valor da expressão, o grupo de instruções declaradas em default serão executadas. Isto quando o default existir, pois ele é opcional; O padrão ANSI C determina que um switch possa ter pelo menos 257 comandos case; O comando switch só pode testar igualdade, enquanto que o if pode avaliar expressões lógicas e relacionais; Duas constantes case no mesmo switch não podem ter o mesmo valor;
Prof. Yandre Maldonado - 34 Introdução à Linguagem C Exemplo de programa com o comando switch: #include <stdio.h> #include #include <stdio.h> #include <conio.h> <conio.h> void main () void main () char char op; op; printf ("Escolha uma opcao: \n\n"); printf printf ("Escolha uma opcao: \n\n"); printf (" (" 1 1 - - Primeira Primeira opcao;\n\n"); printf opcao;\n\n"); printf (" (" 2 2 - - Segunda Segunda opcao;\n\n"); printf (" 3 - Terceira opcao;\n\n"); opcao;\n\n"); printf printf (" (" 4 3 - - Quarta Terceira opcao;\n\n"); opcao;\n\n"); op=getch(); printf (" 4 - Quarta opcao;\n\n"); op=getch(); switch (op) switch (op) case case '1': printf '1': ("Voce escolheu a primeira opcao!\n\n"); break; printf ("Voce escolheu a primeira opcao!\n\n"); case break; case '2': printf '2': ("Voce escolheu a segunda opcao!\n\n"); break; printf ("Voce escolheu a segunda opcao!\n\n"); case break; case '3': printf '3': printf ("Voce ("Voce escolheu escolheu a a terceira terceira opcao!\n\n"); break; opcao!\n\n"); case break; '4': case printf '4': printf ("Voce ("Voce escolheu escolheu a a quarta quarta opcao!\n\n"); break; opcao!\n\n"); default: break; default: printf ("Voce nao escolheu nenhuma das opcoes oferecidas!\n\n"); printf ("Voce nao escolheu nenhuma das opcoes oferecidas!\n\n"); getch getch (); ();
Prof. Yandre Maldonado - 35 Exercício: Faça um algoritmo para calcular o valor total a pagar por um consumidor que abasteceu seu carro, sabendo que serão informados o tipo de combustível escolhido (G/A/D) e o número de litros consumido. Considere os seguintes preços por litro de combustível: Gasolina R$ 1,50; Álcool R$ 0,90; Diesel R$ 0,80.
Prof. Yandre Maldonado - 36 Comandos de Iteração (Estruturas de Controle de Repetições) Controle de Repetição por Contador: Comando for; Controle de Repetição Lógico: Iteração Pré-teste (equivalente ao while do Pascal): Comando while; Iteração Pós-teste (equivalente ao repeat do Pascal): Comando do-while;
Prof. Yandre Maldonado - 37 Comando for: Permite a repetição da execução de um bloco de instruções controlada por um contador; Forma geral: for (inicialização; condição; incremento) bloco de instruções; Onde: inicialização: é a atribuição do valor inicial ao contador; condição: estabelece a condição limite de parada para a repetição do laço; incremento: estabelece o valor segundo o qual o contador deve variar;
Prof. Yandre Maldonado - 38 Exemplo de uso do comando for: um programa que imprime os números de 1 a 20 na tela; #include <stdio.h> #include <conio.h> void main () () int int i; i; for for (i=1;i<=20;i++) printf ("Numero: %d\n",i); getch (); ();
Prof. Yandre Maldonado - 39 Exercícios: 1. Durante trinta dias de um determinado mês, foram colhidas as temperaturas médias diárias de uma determinada região em graus celsius. Faça um algoritmo que calcule e informe a temperatura média do mês, e a temperatura mais alta do mês. 2. Faça um algoritmo que calcule o fatorial de um número inteiro fornecido pelo usuário.
Prof. Yandre Maldonado - 40 Comando while: Permite a repetição da execução de um bloco de instruções controlada por uma condição lógica; Forma geral: while (condição) bloco de instruções; Onde: condição: pode ser qualquer expressão (aritmática, lógica ou relacional), e é verdadeira quando diferente de 0 (zero); bloco de instruções: comando ou bloco de comandos que devem ter a execução realizada enquanto a condição for verdadeira; A execução do laço while se encerra quando a condição for falsa, neste caso o controle de execução passa para a primeira linha que aparecer após o bloco de instruções;
Prof. Yandre Maldonado - 41 Exemplo de uso do comando while: um programa que imprime na tela os números inteiros digitados pelo usuário, até que este digite um valor negativo; #include <stdio.h> #include <conio.h> void main () () int int n=0; while (n>=0) printf ("Digite um um numero: "); "); scanf ("%d",&n);
Prof. Yandre Maldonado - 42 Introdução à Linguagem C Comando do-while: Permite a repetição da execução de um bloco de instruções controlada por uma condição lógica. Esta condição é testada após a execução do bloco, isso significa que um laço do-while será executado pelo menos uma vez; Forma geral: do bloco de instruções; while (condição); Onde: condição: pode ser qualquer expressão (aritmática, lógica ou relacional), e é verdadeira quando diferente de 0 (zero); bloco de instruções: comando ou bloco de comandos que devem ter a execução realizada enquanto a condição for verdadeira; A execução do laço do-while se encerra quando a condição for falsa, neste caso o controle de execução passa para a primeira linha que aparecer após o comando do-while;
Prof. Yandre Maldonado - 43 Exemplo de uso do comando do-while: um programa que imprime na tela os números inteiros digitados pelo usuário, até que este digite um valor negativo; #include <stdio.h> #include <conio.h> void main () () int int n; n; do do printf ("Digite um um numero: "); "); scanf ("%d",&n); while (n>=0);
Prof. Yandre Maldonado - 44 Exercícios: 1. Faça um algoritmo para calcular a soma entre os números de um conjunto de números inteiros e positivos a ser fornecido pelo usuário utilizando os comandos while e do-while; 2. Faça um algoritmo que permita ao usuário inserir dados para as seguintes perguntas: Idade (inteiro); Altura (real); Sexo (caracter, m ou f); Sabe-se que o número de entrevistados é indefinido, e depois de inseridos os dados o algoritmo deverá informar: O número de mulheres cuja idade está entre 20 e 35 anos; O número de homens que tem mais de 1.80m de altura;
Prof. Yandre Maldonado - 45 Agregados de Dados Homogêneos: conjuntos (ou matrizes) Coleção de variáveis de mesmo tipo referenciadas por um nome comum; Cada elemento específico é acessado através de um índice; Os elementos ocupam posições contíguas de memória; Equivalente ao array (vetor) em Pascal; Heterogêneos: estruturas Reúnem uma coleção de variáveis que podem ser referenciadas por um nome; Maneira conveniente de se ter informações relacionadas agrupadas; Equivalente ao record (registro) em Pascal;
Prof. Yandre Maldonado - 46 Vetores e Matrizes (Agregados Homogêneos) Forma geral: tipo nome_mat [tamanho]; Exemplo 1: uma vetor para armazenar até 10 valores inteiros: int vetor_inteiro [10]; Exemplo 2: uma vetor para armazenar 20 caracteres (equivalente a string do Pascal): char nome_pessoa [20]; Em C, toda vetor tem 0 como o índice do seu primeiro elemento. Portanto, quando você escreve char p[10]; você está declarando uma vetor de caracteres que tem dez elementos, p[0] até p[9].
Prof. Yandre Maldonado - 47 O seguinte programa carrega uma matriz de inteiros com os números de 0 a 99: #include <stdio.h> #include <conio.h> void main () () int int x[100]; int int i; i; for for (i=0;i<100;++i) x[i]=i; for for (i=0;i<100;++i) printf (" (" %d %d,",x[i]); printf ("\n\n"); getch();
Prof. Yandre Maldonado - 48 Para a leitura de vetores de caracteres, pode-se utilizar a função gets(), da biblioteca <stdio.h>; Forma geral: gets(matriz_a_ser_lida); Exemplo: ler uma cadeia de caracteres a ser digitada pelo usuário na matriz nome descrita a seguir: char nome[25];... gets(nome); Para escrever uma vetor de caracteres na tela, pode-se utilizar a função puts(), também presente na biblioteca <stdio.h>; Forma geral: puts(matriz_a_ser_escrita);
Prof. Yandre Maldonado - 49 O seguinte programa lê uma matriz de caracteres (string) digitada pelo usuário e posteriormente imprime na tela: #include <stdio.h> #include <conio.h> void void main main () () char char nome[25]; printf ("Digite um um nome: nome: "); "); gets(nome); printf ("O ("O nome nome que que voce voce digitou e: e: "); "); puts(nome); // // ou ou printf ("O ("O nome nome que que voce voce digitou e: e: %s\n\n", nome); getch getch (); ();
Prof. Yandre Maldonado - 50 Estruturas: A palavra chave struct informa ao compilador que um modelo de estrutura está sendo definido; Forma geral: struct identificador tipo nome_da_variável; tipo nome_da_variável; tipo nome_da_variável;... Exemplo: struct pessoa char nome[30]; char endereco[40]; char cidade[20]; int idade; ; A declaração mostrada ao ao lado apenas define a forma da da estrutura, neste caso ainda não foi foi criada nenhuma variável, portanto ainda não houve gasto de de memória.
Prof. Yandre Maldonado - 51 Declaração de Matrizes Bidimensionais Para declarar uma matriz bidimensional de inteiros de tamanho 10x10, pode-se fazer: int matriz [10] [10]; Para atribuir o valor 30 à célula de índices 5 (na primeira dimensão) e 4 (na segunda dimensão), pode-se fazer: matriz [5][4]=30;
Prof. Yandre Maldonado - 52 Para se criar uma variável do tipo da estrutura definida anteriormente, você deve declarar: struct pessoa cliente; assim, você estaria criando uma variável chamada cliente do tipo da estrutura pessoa; A quantidade de bytes consumidos por uma variável de um tipo de estrutura equivale a soma dos valores gastos por cada um de seus membros (ou campos); No caso anterior teríamos: 30+40+20+2=92 bytes; Os membros individuais de uma estrutura são referenciados através do operador ponto. Para atribuir o valor 45 a idade da variável cliente declarada anteriormente, poderíamos ter: cliente.idade=45;
Prof. Yandre Maldonado - 53 Matrizes de Estruturas: Pode-se criar matrizes de estruturas; Para criar uma matriz para armazenar informações referentes a 50 pessoas, de acordo com a estrutura pré-definida anteriormente, poderíamos fazer: struct pessoa clientes[50]; Neste caso, para atribuirmos o valor 30 ao campo idade do cliente de índice 17, poderíamos fazer: clientes[17].idade=30;
Prof. Yandre Maldonado - 54 Exercícios: 1. Faça um algoritmo que permita ao usuário digitar valores inteiros e positivos para uma matriz de tamanho físico 10X10, e que ao final informe qual é a média, e o valor do maior número digitado. 2. Faça um algoritmo que permita armazenar os nomes e as quatro notas bimestrais para um total de 20 alunos. Depois de armazenadas as informações, o algoritmo deverá fazer uma varredura sobre as mesma a fim de identificar qual dos alunos obteve a maior nota no 3º bimestre e informar o seu nome. 3. Faça um algoritmo que armazene as seguintes informações sobre um conjunto de no máximo 30 carros que estão a venda: modelo, ano, preço, e placa. Ao final, o algoritmo deve percorrer as informações a fim de descobrir qual dos carros é o mais barato, e deve informar seu modelo e ano.