You are on page 1of 51

Primeiros Passos

O C "Case Sensitive
Vamos comear o nosso curso ressaltando um ponto de suma importncia: o C "Case Sensitive", isto , maisculas e minsculas fazem diferena. Se se declarar uma varivel com o nome soma ela ser diferente de Soma, SOMA, SoMa ou sOmA. Da mesma maneira, os comandos do C if e for, por exemplo, s podem ser escritos em minsculas pois seno o compilador no ir interpret-los como sendo comandos, mas sim como variveis.

Estrutura de um Programa em Turbo C


Definies de prprocessamento Documentao do programa #include <nome da biblioteca a se utilizada> ;

/* Autor: Fulano de Tal


Data : 01/04/2000 Objetivo : Clculo do salrio liquido

*/

Identificao do programa Inicio do programa rea de declarao

main( ) { int idade, contador; float salario; char nome[30], sexo; < instruo>;

Corpo do Programa

. . .
< instruo>; }

Final do programa

Tipos de Variveis do Turbo C


Dados Numricos inteiros so informaes que pertenam ao conjunto dos nmeros inteiros, positivos ou negativos, excluindo-se qualquer nmero fracionrio. Os valores inteiros podem ser identificados como:

TIPO

FAIXA DE ABRANGNCIA

Nmero de bytes ocupados na memria

int long unsigned int

De 32768 a 32767 De 2147483648 at 2147483647 De 0 at 65535

2 4 2

Tipos de Variveis do Turbo C


Dados Numricos reais so informaes que pertenam ao conjunto dos nmeros que abrange inclusive os fracionrios, positivos ou negativos, e estes podem ser identificados como:

TIPO

FAIXA DE ABRANGNCIA

Nmero de bytes ocupados na memria

Float Double

De 3.4E-38 at 3.4E+38 De 1.7E-308 at 1.7E+308

4 8

Tipos de Variveis do Turbo C


Os dados do tipo caracter (char) variveis de um

byte (8 bits).
Os dados do tipo Strings um vetor de caracteres terminado com um caracter nulo. Este um caractere com valor inteiro igual a zero (cdigo ASCII igual a 0). O terminador nulo tambm pode ser escrito usando a conveno de barra invertida do C como sendo '\0, forma geral: char nome_da_string [tamanho];

J o a o \0 . . . .

Modificadores de tipo
As variveis podem vir acompanhadas de modificadores de tipo, estes podem ser utilizados sem que seja especificado o tipo de varivel, se isto ocorrer por default o compilador assume o tipo

int.
bytes

TIPO

FAIXA DE ABRANGNCIA

Nmero

de

ocupados na memria Unsigned char Unsigned Short Long Unsigned long Long double 0 a 255 0 a 65535 -32768 a 32767 -2147483648 a 2147483647 0 a 4294967295 3.4E-4932 a 1.1e+4932 1 2 2 4 4 10

Comando de Entrada de dados scanf ( )


Com o comando de entrada de dados o usurio pode fornecer valores s variveis via teclado. A sintaxe desta funo se caracteriza por ser um especificador de formato seguido de uma lista de argumentos separados por vrgula, sendo que seus argumentos so endereos de variveis: scanf ( especificadores de formato, lista de argumentos );

Cdigo do formato %s %d %o %x %f

Significado L uma cadeia de caracteres (string) L um nmero inteiro da base 10 (decimal) L um nmero inteiro da base 8 (octal) L um nmero inteiro da base 16 (hexa) L um nmero de ponto flutuante (real)

Comando de Sada de dados printf( )


Este comando utilizado para a apresentao de mensagens e/ou resultados do processamento no monitor . A sintaxe desta funo : printf ( string de controle, lista de argumentos );
Cdigo do formato %c %s %d Significado Apresenta um nico caracter Apresenta uma cadeia de caracteres (string) Apresenta um nmero inteiro da base 10 (decimal) %o %x %f Apresenta um nmero inteiro da base 8 (octal) Apresenta um nmero inteiro da base 16 (hexa) Apresenta um nmero de ponto flutuante (real)

Operadores Aritmticos
Chamamos de operadores aritmticos o conjunto de smbolos que representam as operaes bsicas da matemtica, e em Turbo C temos:
Operador Aritmtico + * / % Operao bsica matemtica Adio Subtrao Multiplicao Diviso Resto da diviso

Primeiro Programa
#include <stdio.h>
void main () { /* Declaracao de Variaveis */ int Dias; float Anos; printf ("Entre com o nmero de dias: "); /* Entrada de Dados */ scanf ("%d",&Dias); /* Conversao Dias->Anos */ Anos=Dias/365.25; printf ("\n\n%d dias equivalem a %f anos.\n",Dias,Anos);

Bibliotecas
Para utilizar uma biblioteca em um programa, dever ser inserido antes da funo main ( ), da seguinte maneira:
#include nome da biblioteca;ou <nome da biblioteca>;

O #include, uma diretiva do prprocessador, e indica que o cdigo_fonte do arquivo chamado seja includo no programa que est chamando.

Bibliotecas disponveis na Linguagem C


Biblioteca stdio.h Descrio Biblioteca padro de entrada e sada I/O . Fazem parte as funes: printf, scanf, puts, gets, getchar, fclose, feof, fget, fread, fopen, putc, entre outras. conio.h Biblioteca com rotinas de tratamento de entrada e sada do console (monitor).Por exemplo: clrscr(), gotoxy, textcolor, textbackground, cprintf, cscanf, getche, getch, entre outras. ctype.h Biblioteca de rotinas de tratamento de caractere, como por exemplo, toupper, tolower, toascii, isprint, ...... dir.h Biblioteca de rotinas de manipulao de diretrios, por exemplo, getdisk, rmdir, chdir, findfirst, searchpath,..... dos.h Biblioteca de rotinas de manipulao do DOS , como, country, intdos, sleep, setverify, ....... string.h Biblioteca de rotinas de manipulao de string, como por exemplo, stcmp, ctrcpy, strcat, strncpy, strlwr, strupr,.... math.h Biblioteca de funes matemticas, como, acos, exp, asin, cos, log, tan, sin, atan, log10, sqrt, ..... stdarg.h Biblioteca com rotinas de tratamento dos argumentos passados ou recebidos pelas funes, como vprintf, cscanf,..... strstr, strlen,

Comandos de Formatao de Tela


clrscr( ); - comando utilizado para limpar a tela; gotoxy (x, y) - posiciona o cursor na coluna e linha indicada pelos parmetros

x(coluna) e y(linha).

Definindo cores
de Texto
comando : textcolor(cor);
Para que a linha de texto fique piscando acrescentar | blink no comando textcolor.

de Fundo de Texto
comando : textbackground (cor);

Definindo cores
Obs.: para cor deve-se utilizar o cdigo ou o nome da cor em Maisculo. As funes de definio de cores de texto e fundo de texto assim como as funes especiais de E/S fazem parte do arquivo conio.h.

Dever ser utilizado funes especiais de E/S para exibir texto com as cores definidas, as funes printf( ) , scanf ( ), devero ser substitudas por cprintf( ) , cscanf ( ).

Tabela de cores
Macros de cores e seus equivalentes em inteiro.

Cores vlidas para fundo de texto e letras


cdigo 0 1 2 3 4 5 6 nome BLACK BLUE GREEN CYAN RED MAGENTA BROWN cor preta azul verde cyan Vermelho magenta marron

Cores vlidas somente para letras

cdigo 7 8 9 10 11 12 13 14 15

nome LIGHTGRAY DARKGRAY LIGHTBLUE LIGHTGREEN LIGHTCYAN LIGHTRED LIGHTMAGENTA YELLOW WHITE

cor Cinza claro cinza escuro azul claro verde claro cyan claro vermelho claro magenta claro amarelo branco

Funes Matemticas
Podemos usar nas expresses aritmticas algumas funes da matemtica, como:

Funo abs(x) atan (x) cos(x) exp (x) pow (x, y) log (x)

Operao bsica matemtica Retorna o valor absoluto(mdulo) de x Retorna o arco da tangente x (x deve ser do tipo double) Retorna o coseno de x (x deve ser do tipo double) Retorna o exponencial de x (x deve ser do tipo double) Retorna xy (x e y devem ser do tipo double) Retorna o logaritmo natural de x (x deve ser do tipo double)

sin (x) sqrt (x) tan (x)

Retorna o seno de x (x deve ser do tipo double) Retorna a raiz quadrada de x Retorna a tangente x (x deve ser do tipo double)

Operadores Relacionais
So operadores que utilizamos para realizar comparao entre dois valores do mesmo tipo. Os operadores relacionais so:

Operador == >

Utilizao Testar igualdade entre os valores. Verificar se o valor a esquerda do sinal maior que o da direita.

<

Verificar se o valor a esquerda do sinal menor que o da direita.

!=

Verificar se o valor a esquerda do sinal diferente do da direita.

>=

verificar se o valor a esquerda do sinal maior ou igual ao da direita.

<=

verificar se o valor a esquerda do sinal menor ou igual ao da direita.

Operaes com valores Lgicos


So operaes que utilizamos os operadores lgicos: &&, || e !, sua utilizao depende do resultado desejado. Veja na tabela abaixo quando utilizar cada um destes operadores.

Operador &&

Utilizao Quando for necessrio relacionar duas ou mais expresses lgicas, e quer se garantir que as instrues s sero executadas se todas forem verdadeiras.

||

Quando for necessrio relacionar duas ou mais expresses lgicas, e quer se garantir que as instrues sero executadas quando uma delas for verdadeira.

Quando se quer negar (inverter) o valor lgico de uma expresso lgica.

C, verdadeiro qualquer valor diferente de zero e falso zero. Expresses que usam operadores relacionais ou lgicos retornaro 0 para falso e 1 para verdadeiro.

Estruturas de seleo
1 - Seleo Simples
if (< condio>) <instruo a ser executada >;
Se a <condio> for verdadeira a instruo especificada ser executada, o ponto e virgula aps o comando encerra a instruo. Outra opo de seleo simples :

if (< condio>) { <instruo1 a ser executada >;

... < instruo2 a ser executada >;


}
Se a <condio> for verdadeira ento o bloco de instrues especificado ser executado. Observe que necessitamos colocar { e }, quando queremos que mais que uma instruo seja executada.

Estruturas de seleo
2 - Seleo Composta
if (< condio>)
<instruo a ser executada >; else <instruo a ser executada >;
Para se definir blocos de instrues, utilize a seguinte sintaxe:

if < condio> { <instruo1 a ser executada >; ...... < instruon a ser executada >; } else

<instruo1 a ser executada >;


...... < instruon a ser executada >; }

Estruturas de seleo
3 - Seleo Encadeada
A seleo encadeada ou aninhada o agrupamento de vrias selees (internas) a uma seleo.

if (< condio>) if (<condio>) { <instruo a ser executada >; <instruo a ser executada >;} else if (<condio>) { <instruo a ser executada >; <instruo a ser executada >; } else if (<condio>) { <instruo a ser executada >; <instruo a ser executada >;} else <instruo a ser executada >;
Podemos fazer uma variedade de combinaes de if else aninhadas dependendo da necessidade e da lgica para a soluo do problema.

Exemplo
Dados trs valores A, B, C, verificar se eles podem ser os comprimentos dos lados de um tringulo e, se forem, verificar se compem um tringulo equiltero, issceles ou escaleno. Informar se no compuserem nenhum tringulo.
tringulo: (A < B+ C) e (B < A+C) e (C < A + B); equiltero : (A = B) e (B= C); issceles : (A = B) ou (B = C) ou (A = C); escaleno : (A <> B) e ( B<>C);

Exemplo
/* Objetivo : Verificar se os nmeros informados formam um tringulo */ #include stdio.h; #include conio.h; main ( ) { float clrscr ( ); gotoxy(10,5); printf (* VERIFICA OS LADOS DE UM TRIANGULO *); gotoxy(10,10); printf (Digite o valor de A: ); scanf (%f, &A); gotoxy(10,12); printf (Digite o valor de B: ); scanf (%f, &B); gotoxy(10,14); printf (Digite o valor de C: ); scanf (%f, &C); gotoxy(15,20); if (A < B+ C && B < A+C && C < A + B) if (A == B && B== C) printf (Estes nmeros formam um triangulo equiltero.); A, B, C; /*declarao das variveis que sero utilizadas /* comando para limpar a tela */

else
if (A == B || B == C || A == C) printf (Estes nmeros formam um triangulo isosceles.); else printf (Estes nmeros formam um triangulo escaleno.); else

printf (Estes nmeros no formam um triangulo!);


}

Exerccios
Criar um programa em Turbo C que tendo como dados de entrada o nome do funcionrio, o cdigo de sua funo, seu salrio bruto, e o nmero de dependentes, Calcule o salrio liquido do funcionrio, obedecendo os seguintes critrios:

Salrio Liquido = Novo salrio descontos;


Novo salrio = salrio bruto reajustado; Reajuste do salrio bruto: 15% para funes de cdigo 100 a 200; 20% para as funes de cdigo 201 a 300 e 25% para demais funes.

Descontos = INSS + IR + Seguro Sade; INSS Faixa salarial Seguro Sade = 5% do Novo Salrio. At R$ 380,00 De R$ 380,01 a R$ 600,00 De R$ 600,01 a R$ 1.000,00 De R$ 1.000,01 a R$ 1.320,00 Acima de R$ 1.320,00
IR Faixa salarial At R$ 1.200,00 De R$ 1.200,01 a R$ 1.900,00 De R$ 1.200,01 a R$ 2.500,00 Acima de R$ 2.500,00

Desconto 8% 9% 9,5% 10% R$ 132,00

Desconto 0% 10% 15% 25%

Abatimento de R$ 90,00 por dependente. Obs.: para calcular o IR verificar qual a faixa salarial que o funcionrio se enquadra, e antes de calcular o valor a ser desconto de IR faa o abatimento dos dependentes. Ex.: salrio de 2000.00 e 2 dependentes IR = ( salario 2 * 90.00) * 0.15;

Exerccios
2 Criar um programa em Turbo C que tendo como dados de entrada o
nome do funcionrio, o cdigo de sua funo e a quantidade de peas produzidas. Calcule e informe o valor do prmio de produo, sabendo-se que para o valor do prmio depende da funo e da quantidade produzida:

Funo

Prmio por pea

101 105 110 115 a 120

R$ R$ R$ R$

1,00 0,91 0,80 0,95

Adicional para produo acima de 10.000 peas R$ 500,00 R$ 350,00 R$ 400,00 RS 420,00

3 Criar um programa em Turbo C que identifique quais candidatos


devero ser entrevistados, sendo que os critrios para seleo so: auxiliar de escritrio = idade (maior de 18 anos) e sexo masculino (M) ; secretria = idade (maior de 20 anos) e sexo feminino (F). Enviar mensagem conveniente para cada situao, inclusive para os no selecionados.

Estruturas de seleo
4 - Seleo de Mltipla Escolha
Usamos para escolher uma entre vrias alternativas, Com o comando switch ....... apresenta maior flexibilidade com formato limpo e claro.

switch (<varivel>) { case <opo1> : <comando 1.1>; <comando 1.2>; break; case <opo2> : <comando 2.1>; <comando 2.2>; break; .......... default : <comando x.1>; <comando x.2>; break; }

<varivel> o nome da varivel a ser controlada na deciso. Esta varivel pode ser do tipo char , int. <opo> o contedo da varivel a ser verificado (valor). <comando> instruo em C a ser executada.
A declarao default se nenhuma correspondncia for encontrada, entretanto, esta opcional, e se no estiver presente, nenhuma ao ser realizada se todas as correspondncias falharem. Quando uma correspondncia for encontrada, as instrues associadas ao case so executadas at que o break seja encontrado.

Exemplo de switch
Dado a Idade de um atleta,classifique-o nas categorias: a- Frandinha - at 4 anos; b- Infantil - 5 a 10 anos; c- Juvenil - 11 a 17 anos; d- Senior - maiores de 18 anos inclusive. /* Objetivo classificao dos nadadores em categorias */ #include stcio.h; #include conio.h; #include string.h; #include stdarg.h; main ( ) { int IDADE;

clrscr ( );
gotoxy(15,5); printf ( * CLASSIFICAO EM CATEGORIAS *); gotoxy(10,10); printf (Digite a idade do atleta: ); scanf (%d, &IDADE); switch (IDADE) case 0 case 1 case 2 case 3 case 4 case 5 case 6 case 7 case 8 case 9 : : : : : printf (%2d Categoria Fraldinha, IDADE); break; : : : : : break; case 11 : case 12 : case 13 : case 14 : case 15 : {

case 10 : printf (%2d Categoria Infantil, IDADE);

case 16 :
case 17 : printf (%2d Categoria Juvenil, IDADE); break; default : printf (%2d Categoria Senior, IDADE); break; }

Manipulao com String


Apesar de na Linguagem C no haver um tipo de dados string, podemos trabalhar com uma cadeia de caracteres, como vimos anteriormente nos tipos de variveis. At este momento estvamos utilizando a funo scanf ( ) para inserir uma string a partir do teclado, entretanto, esta funo no permite que existam caracteres branco em uma string, pois o caracter branco delimitador para esta funo. Assim, para resolvermos este efeito indesejvel passaremos a trabalhar com a funo gets ( ), pois esta a maneira mais fcil de inserir uma string pelo teclado, e a sintaxe :

gets (nome_da_string);
Exemplo: /* Objetivo : Apresentao da funo gets ( ) */ #include stdio.h;

#include conio.h;
main ( ) { char NOME [60];

clrscr ( ); printf (Digite seu nome completo: ); gets (NOME); printf ( Boa Noite %s , NOME); }

Manipulao

com String

A funo puts ( ) complemento da funo gets ( ) e sua principal caracterstica est no fato de permitir a impresso de uma nica string por vez, alm de mudar de linha automaticamente aps a impresso. Sem necessidade de parmetro fcil utiliza-la, restringe-se sua utilizao em virtude de aceitar somente com argumento , a varivel que ser impressa, e tambm pelos possveis efeitos visuais distorcidos e incmodos.

Exemplo: /* Objetivo : Apresentao da funo gets ( ) */ #include stdio.h; #include conio.h; main ( ) { char NOME [60]; clrscr ( ); puts (Digite seu nome completo: ); gets (NOME); printf ( Boa Noite %s , NOME); }

Funes para tratamento de String


As funes so as seguintes:
Funes Funcionalidade

strcat strcpy strlen strcmp

Anexa o contedo de uma string em outra string Copia o contedo de uma string para outra string Retorna o tamanho dinmico de uma String Compara o contedo de duas strings

Sintaxe das Funes


strcat ( str1, str2); Anexa o contedo da str2 em str1, str2 no modificada. strcpy ( para, de); Copia o contedo da string de para string para, sobrescrevendo o contedo da string para. Deve-se estar atento ao tamanho reservado string para, pois se esta menor que a string de ao executar esta instruo o limite da string para ser ultrapassado e possivelmente provocar problemas no programa.

Funes para tratamento de String


Sintaxe das Funes
strcmp ( str1, str2);
Compara o contedo das duas string e retorna 0 se elas forem iguais. Se str1 lexicograficamente maior (maior

em termos de regras do dicionrio) que str2, ento um


nmero positivo retornado; caso contrrio um nmero negativo retornado.

strlen ( str);
Retorna o tamanho da string str.

Exemplo de funes para tratamento de String


/* Objetivo de string */ #include stdio.h; #include conio.h; #include string.h; #include stdarg.h; main ( ) { char NOME1[15], NOME2 [15]; clrscr ( ); printf (Digite uma string: ); gets (NOME1); printf (Digite outra string: ); gets (NOME2); printf (tamanhos : %d %d \n, strlen(NOME1), strlen(NOME2)); if ( !strcmp(s1, s2)) printf (As strings so iguais \n ); strcat (NOME1, NOME2); printf ( %s \n, NOME1); } : Apresentao da funes de manipulao

Manipulao com Caracter (um nico)


So as seguintes funes para tratamento de caracteres:
Funes Funcionalidade

getchar ( )

L um caractere do teclado; aguarda por um retorno do carro (enter)

getche ( )

L um caractere com eco; no aguarda por um retorno do carro (enter)

getch ( )

L um caractere sem eco; no aguarda por um retorno do carro (enter)

putchar ( ) toupper ( )

Escreve um caractere na tela Converte um caracter para sua representao em maisculo.

tolower ( )

Converte um caracter para sua representao em minsculo

Estruturas de Repetio
1 - Repetio com teste no incio
Verifica antes se a <condio> verdadeira para que se execute o referido bloco de instrues. Se a condio inicialmente for falsa o bloco no ser executado.

while (<condio>)

{
<comando 1>; <comando 2>; <comando 3>; }

Exemplo
/* Objetivo : Calcular mdia anual dos alunos da turma 999 e informar o resultado */ #include stdio.h; #include conio.h; #include string.h; #include stdarg.h; main ( ) { float N1, N2, N3, N4, MEDIA; char NOME[30]; int CONTADOR; contador = 1; while (contador <=50) { clrscr ( ); printf (* PROGRAMA PARA CALCULO DA MEDIA ANUAL *); printf (Digite o nome do aluno: ); gets(NOME); printf (Digite a nota do 1. bim.: ); scanf (%f, &N1); printf (Digite a nota do 2. bim.: ); scanf (%f, &N2); printf (Digite a nota do 3. bim.: ); scanf (%f, &N3); printf (Digite a nota do 4. bim.: ); scanf (%f,&N4); MEDIA := (N1*1+N2*2+N3*3+N4*4)/10; if (MEDIA >= 5) { printf (%s Parabens !!! voce foi aprovado com media: %2.2f, NOME , MEDIA); } else { printf(%s Infelizmente voce for reprovado !, NOME); printf (Estude mais no prximo ano, pois este ano sua media foi : %2.2f,MEDIA); } contador = contador+1; } }

Estruturas de Repetio
2 - Repetio com teste no final
Utilizamos a estrutura do - while, para permitir que um bloco seja repetido enquanto que uma determinada condio seja verdadeira. Esta estrutura permite que se execute ao menos uma vez o bloco de instrues.

do
{ <comando 1>; <comando 2>;

<comando 3>;
} while (<condio>);

Exemplo
Criar um programa que calcule e mostre a mdia das idades dos alunos do sexo feminino de uma classe com 60 alunos. : Calcular mdia de idade das alunas da turma e informar o resultado */ /* Objetivo #include stdio.h; #include conio.h; #include string.h; #include stdarg.h; main ( ) { float int MEDIA; char SEXO; CONTADOR, CONT_FEM, ACUM_IDA, IDADE;

CONTADOR = 0; CONT_FEM = 0;

ACUM_IDA = 0;
do { clrscr ( ); printf (CALCULO DA MEDIA DAS IDADES DAS ALUNAS); printf (Digite o sexo do aluno: ); SEXO = getche( ); printf (Digite a idade: );

scanf (%d, &IDADE);


SEXO:= toupper(SEXO); if (SEXO == F) { ACUM_IDA = ACUM_IDA+IDADE; CONT_FEM = CONT_FEM+1; } CONTADOR = CONTADOR + 1; } while (CONTADOR < 60); MEDIA = ACUM_IDA / CONT_FEM; printf ( A media de Idade das alunas : %2.2f, MEDIA); }

Estruturas de Repetio
3-Repetio com varivel de controle
Para executar um bloco de comandos ou um comando um nmero definido de vezes, utilizamos a estrutura for .

for (inicializao ; condio; incremento) { <comando 1>; <comando 2>; <comando 3>;

inicializao Declarao usada para inicializar a varivel de controle do lao. condio Expresso relacional que determina quando o lao terminar pelo teste da varivel de controle; incremento Define como a varivel de controle do lao mudar cada vez que a repetio for realizada.

Exemplo: for
Criar um programa que calcule e mostre a mdia das idades dos alunos do sexo feminino de uma classe com 60 alunos.
/* Objetivo : Calcular a mdia de idade das alunas */ #include stdio.h; #include conio.h; #include string.h; #include stdarg.h; main ( ) { float MEDIA; char SEXO; int CONTADOR, CONT_FEM, ACUM_IDA, IDADE; CONT_FEM = 0; ACUM_IDA =0; for (CONTADOR =1; CONTADOR <= 60; CONTADOR++) { clrscr ( ); printf (CALCULO DA MEDIA DAS IDADES DAS ALUNAS); printf (Digite o sexo do aluno: ); SEXO = getche( ); printf (Digite a idade: ); scanf (%d, &IDADE); SEXO:= toupper(SEXO); if (SEXO == F) { ACUM_IDA = ACUM_IDA+IDADE; CONT_FEM = CONT_FEM+1; } } MEDIA = ACUM_IDA / CONT_FEM; printf ( A media de Idade das alunas : %2.2f, MEDIA); }

VETORES
Utilizado quando a estrutura for unidimensional.

Para definirmos um Vetor na Linguagem C, deveremos identificar este por um nome, com as mesmas regras para definio de nomes de varivel, e definirmos a dimenso (tamanho) deste vetor, por um nmero inteiro e positivo, identificando quantos elementos este vetor poder armazenar.

Sintaxe para definio de um vetor :

tipo var_nome [tamanho];

Vetores

Criar um Vetor para armazenar as notas de LTP1 dos 5 alunos de uma determinada turma.

float notas_alunos[5]; 5,5 0 7,5 1 8,3 2 7,6 3 9,6 4

Na linguagem C, todos os vetores e matrizes tm o zero como ndice do seu primeiro elemento, e ficam armazenados na memria em endereos contguos. A linguagem C no faz verificao dos limites nas matrizes, desta forma pode acontecer de ser ultrapassado o fim dela. Se isto acontecer poder ocorrer erros na execuo do programa.

Exemplo de Vetores
Criar um programa que a partir das notas dos 60 alunos da turma 6511, informadas pelo usurio, armazene-as em um vetor, calcule e mostre a mdia da turma
/* Objetivo : Calcular mdia dos alunos da turma 6511 */ #include stdio.h; #include conio.h; #include string.h; #include stdarg.h; main ( ) {

float MEDIA; float NOTA_ALUNOS[60]; int CONTADOR, ACUMUMULADOR;


ACUMULADOR =0; for (CONTADOR =0; CONTADOR < 60; CONTADOR++) { NOTA_ALUNOS[CONTADOR] = 0 ; for (CONTADOR =0; CONTADOR < 60; CONTADOR++) { clrscr ( ); gotoxy(15,5); printf (CALCULO DA MEDIA DA TURMA 6511); gotoxy(10,10); printf (Digite a nota do aluno %02d: ,CONTADOR+1); scanf (%f, &NOTA_ALUNOS[CONTADOR]); ACUULADOR = ACUMULADOR+NOTA_ALUNOS[CONTADOR]; } } MEDIA = ACUMULADOR / 60; gotoxy(10,23); printf ( A media dos alunos da turma 6511 : %2.2f, MEDIA);

Matrizes
A linguagem C permite matrizes multidimensionais. A forma mais simples de uma matriz multidimensional a matriz bidimensional

Sintaxe para definio de uma matriz :

tipo var_nome [dim_1] [dim_2];


Como exemplo: precisamos criar um Matriz para armazenar as 4 notas de LTP1 dos 6 alunos de uma determinada turma, assim devemos definir:

float notas[6][4];

Exemplo:
Criar um programa que a partir das 4 notas dos 60 alunos da turma 6511, informadas pelo usurio, armazene-as em uma matriz, calcule e mostre a mdia final para cada aluno e tambm a mdia geral da turma /* Objetivo : Calcular mdia anual dos alunos */ #include stdio.h; #include conio.h; #include string.h; #include stdarg.h; main ( ) { /* declarao das variveis que sero utilizadas no programa */ float MEDIA, MEDIA_G; float NOTA[60][4]; int CONT_ALUNO, CONT_NOTA, ACUMUMULADOR; ACUMULADOR =0; MEDIA_G = 0; for (CONT_ALUNO =0; CONT_ALUNO < 60; CONT_ALUNO++) { clrscr ( ); gotoxy(15,5); printf (CALCULO DA MEDIA); for (CONT_NOTA =0; CONT_NOTA < 4; CONT_NOTA++) { gotoxy(10,10+CONT_NOTA); printf (Digite a nota %02d do aluno %02d: ,CONT_NOTA+1, CONT_ALUNO+1); scanf (%f, &NOTA[CONT_ALUNO] [CONT_NOTA]); ACUMULADOR = ACUMULADOR+NOTA[CONT_ALUNO] [CONT_NOTA]; } MEDIA = ACUMULADOR / 4; MEDIA_G = MEDIA_G + MEDIA; gotoxy(10,23); printf ( A media final do aluno %02d : %2.2f, CONT_ALUNO+1, MEDIA); } clrscr ( ); MEDIA_G = MEDIA_G / 60; gotoxy(10,23); printf ( A media dos alunos da turma 6511 : %2.2f, MEDIA); }

Funo
Funes so as estruturas que permitem ao usurio separar seus programas em blocos.

Se no as tivssemos, os programas teriam que ser curtos e de pequena complexidade.


Para fazermos programas grandes e complexos temos de constru-los bloco a bloco. Uma funo no C tem a seguinte forma geral:
tipo_de_retorno nome_da_funo (declarao_de_parmetros)

{ corpo_da_funo }

O tipo-de-retorno o tipo de varivel que a funo vai retornar.


O default o tipo int, ou seja, uma funo para qual no declaramos o tipo de retorno considerada como retornando um inteiro.

Funo
A declarao de parmetros uma lista com a seguinte forma geral:

tipo nome1, tipo nome2, ... , tipo nomeN


Repare que o tipo deve ser especificado para cada uma das N variveis de entrada. na declarao de parmetros que informamos ao compilador quais sero as entradas da funo

(assim como informamos a sada no tipo-deretorno). O corpo da funo a sua alma. nele que as entradas so processadas, sadas so geradas ou

outras coisas so feitas.

Comando return
O comando return tem a seguinte forma geral:

return valor_de_retorno; ou return;


Digamos que uma funo est sendo executada. Quando se chega a uma declarao return a funo encerrada imediatamente e, se o valor de retorno informado, a funo retorna este valor. importante lembrar que o valor de retorno fornecido tem que ser compatvel com o tipo de retorno declarado para a funo. Uma funo pode ter mais de uma declarao return. Isto se torna claro quando pensamos que a funo terminada quando o programa chega primeira declarao return. A seguir esto dois exemplos de uso do return:

Exemplo 1
#include
{ return (a*a); } int main () { int num; printf ("Entre com um numero: "); <stdio.h> int Square (int a)

scanf ("%d",&num);
num=Square(num); printf ("\n\nO seu quadrado vale: %d\n",num); return 0; }

Exemplo 2
#include <stdio.h> int EPar (int a) { if (a%2) return 0; else return 1;} int main ()

{
int num; printf ("Entre com numero: "); scanf ("%d",&num);

if (EPar(num))
printf ("\n\nO numero e par.\n"); else printf ("\n\nO numero e impar.\n"); return 0;

Comando return
importante notar que, como as funes retornam valores, podemos aproveita-los para fazer atribuies, ou mesmo para que estes valores participem de expresses. Mas no podemos fazer: func(a,b)=x; /*Errado!*/ No segundo exemplo vemos o uso de mais de um return em uma funo. Fato importante: Se uma funo retorna um valor voc no precisa aproveitar este valor. Se voc no fizer nada com o valor de retorno de uma funo ele ser descartado. Por exemplo, a funo printf() retorna um inteiro que ns nunca usamos para nada. Ele descartado.

You might also like