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

Prof.

Fabiano Russo

Linguagem C
O C "Case Sensitive" O C "Case Sensitive", isto , maisculas e minsculas fazem diferena. Se declarar uma varivel com o nome soma ela ser diferente de Total, TOTAL ou ToTal. 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. Primeiro Programa em C Vamos ver um primeiro programa em C: #include <stdio.h> main () { printf ("Ola!\n"); system(pause); } /*Biblioteca de Comandos */ /* Um Primeiro Programa */ /* Sada*/

Compilando e executando este programa voc ver que ele coloca a mensagem "Ola!" na tela. Vamos analisar o programa por partes. A linha #include <stdio.h> diz ao compilador que ele deve incluir o arquivocabealho stdio.h. Neste arquivo existem definies de funes teis. Toda vez que voc quiser usar uma destas funes deve-se incluir este comando. O C possui diversos arquivos-cabealhos. A linha main() define uma funo de nome main. Todos os programas em C tm que ter uma funo main, pois esta funo que ser chamada quando o programa for executado. O contedo da funo delimitado por chaves { }. O cdigo que estiver dentro das chaves ser executado seqencialmente quando a funo for chamada. A nica coisa que o programa realmente faz chamar a funo printf(), passando a string "Ola!\n" como argumento. por causa da funo printf() que devemos incluir o arquivo- cabealho stdio.h . A funo printf() neste caso ir apenas colocar a string na tela do computador. O \n uma constante chamada de barra invertida. O n de "new line" e ele interpretado como sendo um retorno de carro. importante observar tambm que os comandos do C terminam com ;

Por exemplo: #include <stdio.h> /*Biblioteca de Comandos */ main() /* Nosso primeiro programa */ { int a,b,c,d; /* Declarando variveis */ d = 10; / * Atribuindo valor a varivel */ printf("Entre com um numero:"); /* Escreve na tela */ scanf("%d",&a); /* Entrada de dados */ printf("Entre com outro numero:"); scanf("%d",&b); c=a+b; /* operao matemtica */ printf("A soma dos numeros e: %d\n",c); /* Sada*/ system("pause"); } Caracteres Os caracteres so um tipo de dado: o CHAR. O C trata os caracteres como sendo variveis de um byte (8 bits). J os inteiros (int.) tm tem um nmero maior de bytes. Dependendo da implementao do compilador, eles podem ter 2 bytes (16 bits) ou 4 bytes (32 bits). Assim sendo, podemos usar um CHAR para armazenar tanto valores numricos inteiros de 0 a 255 quanto um caractere de texto. Para indicar um caractere de texto usamos apstrofes. Veja um exemplo de programa que usa caracteres: #include <stdio.h> main () { char Ch; Ch='D'; printf ("%c",Ch); } No programa acima, %c indica que printf() deve colocar um caractere na tela. Strings O Pascal, ao contrrio do C, possui um tipo especfico para tratar de strings (seqncia de caracteres). No C uma string um vetor de caracteres terminado com um caractere nulo. O caracter nulo um caractere com valor igual a zero. O terminador nulo pode ser escrito usando a conveno de barra invertida do C como sendo '\0'. Para declarar uma string podemos usar o seguinte formato geral: char nome_da_string [tamanho_da_string]; Por exemplo: char nome[25];

Note que, como temos que reservar um caractere para ser o terminador nulo, temos que declarar o comprimento da string como sendo, no mnimo, um caractere maior que a maior string que pretendemos armazenar. Vamos supor que declaremos uma string de 7 posies e coloquemos a palavra Joo nela. Teremos: J o A o \0 ... ...

Se quisermos ler uma string fornecida pelo usurio podemos usar a funo gets(). Um exemplo do uso desta funo apresentado abaixo. A funo gets() coloca o terminador nulo na string, quando voc aperta a tecla "Enter". Por exemplo: gets(nome); Como as strings so vetores de caracteres, para se acessar um determinado caracter de uma string, basta "indexarmos", ou seja, usarmos um ndice para acessarmos o caracter desejado dentro da string. Suponha uma string chamada str. Podemos acessar a segunda letra de str da seguinte forma: str[1] = "o"; Para isto, basta voc lembrar-se que o ndice sempre comea em zero. Nesta string, o terminador nulo est na posio 4. Das posies 0 a 4, sabemos que temos caracteres vlidos, e portanto podemos escrev-los. No programa acima, %s indica que printf() deve colocar uma string na tela. Vamos agora fazer uma abordagem inicial s duas funes que j temos usado para fazer a entrada e sada. printf A funo printf() tem a seguinte forma geral: printf (string_de_controle,lista_de_argumentos); Por exemplo: printf(O nome do Aluno : %s\n,nome); Teremos, na string de controle, uma descrio de tudo que a funo vai colocar na tela. A string de controle mostra no apenas os caracteres que devem ser colocados na tela, mas tambm quais as variveis e suas respectivas posies. Isto feito usando-se os caracteres de controle, que usam a notao %. Na string de controle indicamos quais, de qual tipo e em que posio esto as variveis a serem apresentadas. muito importante que, para cada caractere de controle, tenhamos um argumento na lista de argumentos. Apresentamos agora alguns dos cdigos %: Cdigo %d %f %c %s %% Significado Inteiro Float Caractere String Coloca na tela um %

scanf O formato geral da funo scanf() : scanf (string-de-controle,lista-de-argumentos); Por exemplo: scanf(%s,&nome); Usando a funo scanf() podemos pedir dados ao usurio (Como visto anteriormente). Mais uma vez, devemos ficar atentos a fim de colocar o mesmo nmero de argumentos que o de caracteres de controle na string de controle. Outra coisa importante lembrarmos de colocar o & antes das variveis da lista de argumentos. impossvel justificar isto agora, mas veremos depois a razo para este procedimento..

Comentrios O uso de comentrios torna o cdigo do programa mais fcil de se entender. Os comentrios do C devem comear com /* e terminar com */. O C padro no permite comentrios aninhados (um dentro do outro), mas alguns compiladores os aceitam.

Palavras Reservadas do C Todas as linguagens de programao tm palavras reservadas. As palavras reservadas no podem ser usadas a no ser nos seus propsitos originais, isto , no podemos declarar funes ou variveis com os mesmos nomes. Como o C "case sensitive" podemos declarar uma varivel For, apesar de haver uma palavra reservada for, mas isto no uma coisa recomendvel de se fazer pois pode gerar confuso. Apresentamos a seguir as palavras reservadas do ANSI C: auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while

Nomes de Variveis As variveis no C podem ter qualquer nome se duas condies forem satisfeitas: o nome deve comear com uma letra ou sublinhado (_) e os caracteres subsequentes devem ser letras, nmeros ou sublinhado (_). H apenas mais duas restries: o nome de uma varivel no pode ser igual a uma palavra reservada, nem igual ao nome de uma funo declarada pelo programador, ou pelas bibliotecas do C. Variveis de at 32 caracteres so aceitas. Mais uma coisa: bom sempre lembrar que o C "case sensitive" e portanto deve-se prestar ateno s maisculas e minsculas. Os Tipos de Dados na Linguagem C O C tem 5 tipos bsicos: char, int, float, double, void. Destes no vimos ainda os dois ltimos. O double o ponto flutuante duplo e pode ser visto como um ponto flutuante com muito mais preciso. O void (vazio em ingls) um tipo especial e deixaremos o seu estudo para mais adiante. Para cada um dos tipos de variveis existem os modificadores de tipo. Os modificadores de tipo do C so quatro: signed, unsigned, long e short. Ao float no se pode aplicar nenhum e ao double pode-se aplicar apenas o long. Os quatro podem ser aplicados a inteiros. A inteno que short e long devam prover tamanhos diferentes de inteiros, onde isto for prtico. int normalmente ter o tamanho natural para uma determinada mquina. A seguir esto listados os tipos de dados permitidos e seu valores mximos e mnimos em um compilador tpico para um hardware de 16 bits: Intervalo Inicio Char unsigned char signed char Int unsigned int signed int short int unsigned short int signed short int 8 8 8 16 16 16 16 16 16 -128 0 -128 -32.768 0 -32.768 -32.768 0 -32.768 Fim 127 255 127 32.767 65.535 32.767 32.767 65.535 32.767

Tipo

Num de bits

long int signed long int unsigned long int Float Doubl long doubl

32 32 32 32 64 80

-2.147.483.648 -2.147.483.648 0 3,4E-38 1,7E-308 3,4E-4932

2.147.483.647 2.147.483.647 4.294.967.295 3.4E+38 1,7E+308 3,4E+4932

O tipo long double o tipo de ponto flutuante com maior preciso. importante observar que os intervalos de ponto flutuante, na tabela acima, esto indicados em faixa de expoente, mas os nmeros podem assumir valores tanto positivos quanto negativos. Declarao e Inicializao de Variveis As variveis no C devem ser declaradas antes de serem usadas. A forma geral da declarao de variveis : tipo_da_varivel lista_de_variveis; Por exemplo: float nota; As variveis da lista de variveis tero todas o mesmo tipo e devero ser separadas por vrgula. Como o tipo default do C o INT, quando vamos declarar variveis int com algum dos modificadores de tipo, basta colocar o nome do modificador de tipo. Assim um long basta para declarar um long int. Por exemplo, as declaraes char ch, letra; char nome[25]; float pi; int numero; declararam duas variveis do tipo char (ch e letra), uma varivel string nome, um float pi e uma varivel int numero. H trs lugares nos quais podemos declarar variveis. O primeiro fora de todas as funes do programa. Estas variveis so chamadas variveis globais e podem ser usadas a partir de qualquer lugar no programa. O segundo lugar no qual se pode declarar variveis no incio de um bloco de cdigo de uma funo. Estas variveis so chamadas locais e s tm validade dentro do bloco no qual so declaradas. O terceiro lugar onde se pode declarar variveis na lista de parmetros de uma funo.

As regras que regem onde uma varivel vlida chamam-se regras de escopo da varivel. H mais dois detalhes que devem ser ressaltados. Duas variveis globais no podem ter o mesmo nome. O mesmo vale para duas variveis locais de uma mesma funo. J duas variveis locais, de funes diferentes, podem ter o mesmo nome sem perigo algum de conflito. Podemos inicializar variveis no momento de sua declarao. Para fazer isto podemos usar a forma geral tipo_da_varivel nome_da_varivel = constante; Constantes Constantes so valores que so mantidos fixos pelo compilador. J usamos constantes neste curso. So consideradas constantes, por exemplo, os nmeros e caracteres como 45.65 ou 'n', etc... Constantes dos tipos bsicos Abaixo vemos as constantes relativas aos tipos bsicos do C: Tipo de Dado char int long int short int unsigned int float double strings Exemplos de Constantes 'b' '\n' '\0' 2 32000 -130 100000 -467 100 -30 50000 35678 0.0 23.7 -12.3e-10 12546354334.0 -0.0000034236556 joao

Constantes hexadecimais e octais Muitas vezes precisamos inserir constantes hexadecimais (base dezesseis) ou octais (base oito) no nosso programa. O C permite que se faa isto. As constantes hexadecimais comeam com 0x. As constantes octais comeam em 0. Alguns exemplos: Constante 0xEF 0x12A4 03212 034215432 Tipo Char Hexadecimal (8 bits) Int Hexadecimal (16 bits) Char Octal (8 bits) Int Octal (16 bits)

Nunca escreva portanto 013 achando que o C vai compilar isto como se fosse 13. Na linguagem C 013 diferente de 13!

Constantes de barra invertida O C utiliza, para nos facilitar a tarefa de programar, vrios cdigos chamados cdigos de barra invertida. Estes so caracteres que podem ser usados como qualquer outro. A lista completa dos cdigos de barra invertida dada a seguir:

Cdigo \b \f \n \r \t \" \' \0 \\ \v \a \N \xN

Significado Retrocesso ("back") Alimentao de formulrio ("form feed") Nova linha ("new line") Retorno de carro ("carriage return") Tabulao horizontal ("tab") Aspas Apstrofo Nulo (0 em decimal) Barra invertida Tabulao vertical Sinal sonoro ("beep") Constante octal (N o valor da constante) Constante hexadecimal (N o valor da constante)

Operadores Aritmticos A seguir apresentamos a lista dos operadores aritmticos do C: Operador Ao + * / % ++ -Soma (inteira e ponto flutuante) Subtrao ou Troca de sinal (inteira e ponto flutuante) Multiplicao (inteira e ponto flutuante) Diviso (inteira e ponto flutuante) Resto de diviso (de inteiros) Incremento (inteiro e ponto flutuante) Decremento (inteiro e ponto flutuante)

O C possui operadores unrios e binrios. Os unrios agem sobre uma varivel apenas, modificando ou no o seu valor, e retornam o valor final da varivel. Os binrios usam duas variveis e retornam um terceiro valor, sem alterar as variveis originais. O operador - como troca de sinal um operador unrio que no altera a varivel sobre a qual aplicado, pois ele retorna o valor da varivel multiplicado por -1. Os operadores de incremento e decremento so unrios que alteram a varivel sobre a qual esto aplicados. O que eles fazem incrementar ou decrementar, a varivel sobre a qual esto aplicados, de 1. Ento:

x++; x--; so equivalentes a x=x+1; x=x-1; Estes operadores podem ser pr-fixados ou ps- fixados. A diferena que quando so pr- fixados eles incrementam e retornam o valor da varivel j incrementada. Quando so ps-fixados eles retornam o valor da varivel sem o incremento e depois incrementam a varivel. Operador de Atribuio O operador de atribuio do C o =. O que ele faz pegar o valor direita e atribuir varivel da esquerda. Alm disto ele retorna o valor que ele atribuiu.

Operadores Relacionais e Lgicos Os operadores relacionais do C realizam comparaes entre variveis. So eles: Operador > >= < <= == != Ao Maior do que Maior ou igual a Menor do que Menor ou igual a Igual a Diferente de

Os operadores relacionais retornam verdadeiro (1) ou falso (0). Para fazer operaes com valores lgicos (verdadeiro e falso) temos os operadores lgicos: Operador && || ! Ao AND (E) OR (OU) NOT (NO)

Usando os operadores relacionais e lgicos podemos realizar uma grande gama de testes. A tabela-verdade destes operadores dada a seguir: p q falso p AND q falso verdadeiro falso falso falso falso verdadeiro verdadeiro falso verdadeiro verdadeiro p OR q falso verdadeiro verdadeiro verdadeiro

Exerccios
1. Faa um algoritmo que leia e imprima o nome completo. 2. Faa um algoritmo que leia e imprima trs valores numricos. 3. Faa um algoritmo que realize a soma de dois valores inteiros e imprima o resultado. 4. Faa um algoritmo realize a multiplicao de 3 valores e imprima o resultado. 5. Faa um algoritmo que calcule a mdia de 3 valores e mostre o resultado. 6. Faa um algoritmo que leia dados cadastrais tais como: nome, endereo, idade, sexo e salrio bruto e calcule um reajuste salarial de 18% e mostre os dados cadastrais e o salrio reajustado. 7. Faa um algoritmo que calcule a rea da esfera A=4*PI*R . 8. Faa um algoritmo que calcule o volume do cubo V=a . 9. Faa um algoritmo que leia o nome e o salrio de um funcionrio. O salrio ser aumentado em 15%. Aps o aumento, desconte 8% de impostos. Imprima o nome do funcionrio, o salrio inicial, o salrio com o aumento de 15% e o salrio final. 10. Faa um algoritmo que calcule a rea do cubo A=6a e o volume do cubo V=a . Deve ser impresso a aresta utilizada e o resultado dos clculos. 11. Faa um algoritmo que leia 2 valores numricos, realize a diviso e imprima o quociente e o resto inteiro.
2 3 3 2