Академический Документы
Профессиональный Документы
Культура Документы
Tipos de dados
A declarao de uma varivel em linguagem C implica a sua atribuio a um
dado tipo de dados. Essa especificao para alm de caracterizar o contedo da
varivel perante a informao que ela ir conter permite tambm ao compilador
reservar um espao de memria condizente com o tamanho necessrio para o
seu armazenamento.
Tipo de dados
char
int
float
double
short int
long int
signed char/int
unsigned char/int
Informao
Caracter
Inteiro
Virgula flutuante
Virgula flutuante
Inteiro
Inteiro
Com sinal
Sem sinal
Tamanho reservado
1 byte
2 bytes
4 bytes
8 bytes
1 byte
4 bytes
1/2 bytes
1/2 bytes
Desta forma numa varivel do tipo short int poder ser armazenado um
qualquer valor entre 0 e 255, j que com um byte o maior valor 11111111(2) =
255.
Um signed char armazenam-se toma valores entre 127 e 127, e um int tem
por valor mximo de armazenamento 32767.
Exemplos:
int a,b;
char v;
unsigned int valor;
Endereo de memria
Especificadores de Converso
Especificador
Descritivo
%d
%f
%c
%s
%ld
Inteiro
Vrgula Flutuante
Caracter
String
Inteiro longo
Caracteres especiais
Caracter
Descritivo
\n
\t
\b
newline
tab
backspace
Atribuio
O operador atribuio representa-se pelo = e a sua sintaxe :
varivel = expresso
Numa perspectiva mais tcnica a representao acima poderia ser lida da
seguinte forma:
O contedo do endereo da varivel ser preenchido com o valor da
expresso
Exemplos:
a = 5;
b = a;
c = sin(x)+ln(23+abs(y)%5);
a = b = c = 0;
Operadores
Aritmticos:
+
*
/
%
Adio
Subtraco
Multiplicao
Diviso
Mdulo
Exemplos:
2+4.5 = 6.5
43=1
2*3=6
15 / 2 = 7
15.0 / 2 = 7.5
Incremento e Decremento:
++
--
Incremento
Decremento
Exemplos:
y = x++
y = --x
y=x; x=x+1;
x=x-1; y=x;
Relacionais:
x<y
x <= y
x>y
Menor que
Menor ou igual
Maior que
x >= y
x == y
x != y
Maior ou igual
Igual
Diferente
&&
||
!
e (and)
ou (or)
negao (not)
Lgicos:
Manipulao de bits:
~
<<
>>
&
|
^
Complemento
Shift para esquerda
Shift para direita
Conjuno
Dijuno
Ou exclusivo
Estruturas de Deciso
A implementao algortmica da resoluo de um problema implica eventuais
tomadas de deciso sobre o modo como este dever ser solucionado. As
instrues da linguagem que permitem implementar estas construes so
chamadas Estruturas de Deciso.
Instruo IF
Esta instruo permite executar um conjunto de tarefas em funo da avaliao
do valor lgico de uma condio.
As duas construes possveis so:
Falso
expresso
lgica
if( expresso )
Bloco de Instrues;
if( expresso )
Bloco de Instrues 1;
else
Bloco de Instrues 2;
Verdadeiro
Bloco de
Instrues
Falso
Bloco de
Instrues 2
expresso
lgica
Verdadeiro
Bloco de
Instrues 1
Exemplo 1:
Elaborar em Linguagem C um programa que permita calcular a raiz
quadrada de um qualquer nmero real.
#include<stdio.h>
main()
{
float x;
int complexo=0;
scanf(%f,&x);
if( x<0 )
{
x =-x;
complexo=1;
}
printf(a raiz quadrada %f,sqrt(x));
if(complexo==1)
printf(i);
}
Exemplo 2:
Elaborar em Linguagem C um programa que permita verificar se um
dado nmero inteiro par ou mpar.
#include<stdio.h>
main()
{
int numero;
scanf(%d,&numero);
if( numero%2 == 0)
printf(%d par\n,numero);
else
printf(%d impar\n,numero);
}
Instruo SWITCH
Esta estrutura de deciso mltipla dever ser utilizada quando a tarefa a realizar
pelo programa depende do valor de uma varivel (ou expresso.
A sintaxe geral :
switch (varivel) {
case hiptese 1:
case hipotese 2:
bloco de instrues 1;
break;
bloco de instrues 2;
break;
()
case hipotese n:
bloco de instrues n;
break;
default:
bloco de instrues;
}
Esta instruo avalia uma expresso do tipo inteiro (ou caracter) e compara o
valor obtido com as hipteses afectas aos diversos cases se alguma das
comparaes suceder ento executa o respectivo bloco de instrues. Se
nenhuma das comparaes for verdadeira a instruo faculta a existncia de
uma hiptese default com o respectivo bloco de instrues.
A instruo break necessria para terminar a execuo do bloco de instrues
que se pretende executar. Caso esta fosse omitida todas as instrues de todos
os blocos abaixo do pretendido seriam executadas.
Exemplo:
Elaborar em Linguagem C um programa que escreva o nome do ms
introduzido na forma numrica.
#include<stdio.h>
main()
{
int mes;
scanf(%d,&mes);
switch(mes){
case 1 : printf("Janeiro");break;
case 2 : printf("Fevereiro");break;
case 3 : printf("Maro");break;
case 4 : printf("Abril");break;
case 5 : printf("Maio");break;
case 6 : printf("Junho");break;
case 7 : printf("Julho");break;
case 8 : printf("Agosto");break;
case 9 : printf("Setembro");break;
case 10 : printf("Outubro");break;
case 11 : printf("Novembro");break;
case 12 : printf("Dezembro");break;
default : printf("Ms Invalido");
}
}
Ciclos Condicionais:
Ciclo FOR:
Este ciclo possui uma construo muito verstil.
A sintaxe mais usual :
varivel=valor
Expresso
lgica
Falso
Verdadeiro
Bloco de
Instrues
Actualizao do valor
BREAK
Interrompe definitivamente a execuo do ciclo.
Tambm utilizado na instruo Switch.
CONTINUE
Interrompe a execuo do bloco de aco do ciclo iniciando a
iterao seguinte.
Exemplo 1:
Imprimir todos os nmeros de 1 at 10000.
#include <stdio.h>
main()
{
int a;
for(a=1;a<=10000;a++)
printf(%d\n,a);
}
Exemplo 2:
Verificar se um dado nmero inteiro primo.
#include <stdio.h>
main()
{
int a,b,primo=0;
scanf(%d,&a);
for(b=2;b<=a/2;b++)
if( a%b == 0){
primo=1;
break;
}
if(primo==0)
printf(%d primo,a);
else
printf(%d no primo,a);
}
4.
1.
(...)
int a;
(...)
int a;
for(a=1;a<10;
printf(%d",a++));
()
printf(Insira um valor:);
scanf(%d,&a);
for(;a<1000;a++)
printf(%d\t%d",a,2*a);
(...)
2.
5.
(...)
int a;
(...)
int a;
for(a=1;;a+=5){
if(sin(a)==ln(a)*sin(a))
break;
printf(%d",a);
()
for(;;)
printf(%d",a++);
()
3.
6.
(...)
int a;
for(a=1;a<500;)
printf(%d",a++);
()
(...)
int a=1;
for(;a<10;)
printf(%d",a++);
()
Ciclo WHILE
Expresso
lgica
Falso
Verdadeiro
Bloco de
Instrues
EXEMPLO:
Elaborar um programa em linguagem C que permita calcular a mdia de uma
sequncia de valores inseridos pelo utilizador. A sequncia termina
obrigatoriamente com a insero de um 0 que no dever contar para a
avaliao da mdia.
Ex: 2 45 6 1 78 9 0 mdia=23.16667
#include <stdio.h>
main()
{
int contador=0, soma=0, valor;
float mdia;
scanf(%d,&valor);
while(valor != 0){
contador++;
soma += valor;
scanf(%d,&valor);
}
if(contador==0)
mdia=0;
else
mdia=(float)soma/contador;
printf(A mdia da sequncia inserida %f\n,media);
}
A sintaxe :
do
Bloco de Instrues
while(expresso lgica)
Bloco de
Instrues
Verdadeiro
Expresso
lgica
Falso
A avaliao do valor da condio lgica feita no fim do ciclo, pelo que, o bloco
de instrues ser sempre executado pelo menos uma vez.
EXEMPLO:
Elaborar um programa em linguagem C que permita calcular a mdia de uma
sequncia de valores inseridos pelo utilizador. A sequncia termina
obrigatoriamente com a insero de um 0 que no dever contar para a
avaliao da mdia.
Ex: 2 45 6 1 78 9 0 mdia=23.16667
#include <stdio.h>
main()
{
int contador=0, soma=0, valor;
float mdia;
do{
scanf(%d,&valor);
contador++;
soma += valor;
} while(valor != 0)
if((--contador)==0)
mdia=0;
else
mdia=(float)soma/contador;
printf(A mdia da sequncia inserida %f\n,media);
}
CICLOS EMBUTIDOS
Um ciclo diz-se embutido se faz parte integrante do bloco de
instrues de outro ciclo.
Por exemplo:
(...)
for(i=1;i<4;i++)
for(j=1;j<4;j++)
printf(%d\n,i-j);
(...)
i
sada
-1
-2
-1
EXEMPLO:
Encontrar todos os nmeros capicua entre 10 e 10000.
Defina-se por capicua um nmero que lido da mesma forma de
trs para a frente e de frente para trs.
#include<stdio.h>
main()
{
int numero, valor, digito, inverso;
for(numero=10; numero<=10000; numero++)
{
valor=numero;
inverso=0;
while(valor)
{
digito=valor%10;
inverso=10*inverso+digito;
valor=valor/10;
}
if(inverso==numero)
printf(%d\n,numero);
}
}