Buscar

C Basico

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE
PROGRAMA DE EDUCAC¸A˜O TUTORIAL
CURSO DE NIVELAMENTO
Realizac¸a˜o: PET’s de Engenharia Ele´trica, Engenharia Qu´ımica,
F´ısica e Qu´ımica
petee@dee.ufrn.br
NATAL, 18 de Fevereiro de 2008
1
Suma´rio
1 Introduc¸a˜o 3
2 Conhecendo a sintaxe de C 5
2.1 Tipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Func¸o˜es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 Expresso˜es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4 Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4.1 Operador de atribuic¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4.2 Aritme´ticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4.3 Operadores de Relac¸a˜o e Lo´gico . . . . . . . . . . . . . . . . . . . 8
2.4.4 Incremento e decremento . . . . . . . . . . . . . . . . . . . . . . . 8
2.5 Precedeˆncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3 Func¸o˜es Ba´sicas 10
3.1 printf(); . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 scanf(); . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 Estruturas de Controle de Fluxo 12
4.1 IF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2 SWITCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.3 FOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.4 WHILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5 Vetores 16
6 Matrizes 17
2
Cap´ıtulo 1
Introduc¸a˜o
O computador sozinho e´ uma poderosa calculadora, que sem receber comandos serve-
ria para basicamente nada. Tornava− se enta˜o necessa´rio algo que viasibilzasse a real-
izac¸a˜o de diversas atividades usando sua alta capacidade de processamento de ca´lculos.
Enta˜o para que os humanos tivessem a capacidade de mandar instruc¸o˜es para um com-
putador com a sintaxe e semaˆntica da linguagem usada pelos humanos, determinados
padro˜es de linguagem foram criados, surgindo assim as linguagens de programac¸a˜o. Um
conjunto de comandos de programac¸a˜o gera um co´digo fonte que pode ser convertido
para co´digo de ma´quina, este novo co´digo conte´m as instruc¸o˜es requeridas ao computa-
dor, em uma linguagem que as ma´quinas entendam. Uma das mais famosas linguagem
de programac¸a˜o utilizada atualmente pelos profissionais da a´rea e´ a linguagem C/C++.
A linguagem C foi criada por Dennis Ritchie, em 1972, no centro de Pesquisas da Bell
Laboratories. Sua primeira utilizac¸a˜o importante foi a reescrita do Sistema Operacional
UNIX, que ate´ enta˜o era escrito em assembly. Em meados de 1970 o UNIX saiu do
laborato´rio para ser liberado para as universidades. Foi o suficiente para que o sucesso
da linguagem atingisse proporc¸o˜es tais que, por volta de 1980, ja´ existiam va´rias verso˜es
de compiladores C oferecidas por va´rias empresas, na˜o sendo mais restritas apenas ao
ambiente UNIX, pore´m compat´ıveis com va´rios outros sistemas operacionais.
O C e´ uma linguagem de propo´sito geral, sendo adequada a` programac¸a˜o estruturada.
No entanto e´ mais utilizada para escrever compiladores, analisadores le´xicos, bancos de
dados, editores de texto, etc..
A linguagem C pertence a uma famı´lia de linguagens cujas caracter´ısticas sa˜o:
• Portabilidade (as primeiras linguagens de programac¸a˜o eram criadas e tin-
ham seu funcionamento somente voltada para um tipo ma´quina, com o surgimento de
linguagens como C, tornou-se poss´ıvel a elaborac¸a˜o de co´digos que se compilados em tipos
diferentes de ma´quina tambe´m funcionariam);
•Modularidade (apresentam partes muta´veis, ou seja, podemos modificar certos
mo´dulos a fim de usa-los de modo que nos sirvam);
• Compilac¸a˜o separada (um programa em c pode funcionar em qualquer sistema
operacional, contato que seja compilado no mesmo);
• Recursos de baixo n´ıvel (e´ poss´ıvel trabalhar tambe´m com enderec¸os de
memo´ria em c, como o uso de ponteiros, o que incrementa a linguagem recursos de
linguagens de baixo n´ıvel como assembly);
• Gerac¸a˜o de co´digo eficiente (as funcionalidades de c permitem gerar um co´digo
3
limpo e capaz de ser mudado, alem de que a baixa quantidade de palavras reservadas
tornam o uso das propriedades mais eficientes);
• Confiabilidade (os programas gerados em c dificilmente apresentam frequ¨eˆncia
de erros, tornando enta˜o seus programas mais confia´veis que de outras linguagens);
• Simplicidade (obtendo-se o domı´nio da sintaxe ba´sica da linguagem fica fa´cil
interpretar diversos co´digos fonte);
• Facilidade de uso (o pouco uso de palavras reservadas e o uso de estruturas
eficientes tornam a linguagem muito simples de implementar);
Apo´s escrito o co´digo fonte, este precisa ser compilado para gerar o executa´vel, os com-
piladores utilizam o processo de transformac¸a˜o da linguagem de alto n´ıvel (por exemplo,
C) para linguagens bina´rias que o computador entende e so´ enta˜o efetua a compilac¸a˜o
para a criac¸a˜o do executa´vel. Na atualidade existem va´rios compiladores, mas os mais
utilizados sa˜o o DEV-C++ para o Windows (voceˆ o encontra facilmente e gratuito na
internet) e os compiladores que ja´ acompanham algumas verso˜es do Linux, como e´ o caso
do Kurumim que ja´ vem com um compilador de C atrave´s do terminal, e em todas as
verso˜es sa˜o chamado pelo comando “gcc”.
Em 19XX, foi a` linguagem C foi atribu´ıda a orientac¸a˜o a` objeto e reformulado algumas
sintaxes, passando esta a ser chamada de C++ (uma alusa˜o ao incrementador que e´
largamente utilizado nas duas linguagens).
4
Cap´ıtulo 2
Conhecendo a sintaxe de C
Para construc¸a˜o de um programa em linguagem de n´ıvel me´dio, devera´ ser usado um
editor de texto onde o programa tera´ que ser salvo na extensa˜o “.c”. Existem va´rios edi-
tores preparados para digitac¸a˜o de co´digos fonte, por exemplo, os editores do Linux. Tais
editores identificam aspectos pro´prios da linguagem, demarcando-os atrave´s de difer-
entes cores para melhor visualizac¸a˜o, esse e´ um dos diversos motivos que faz com que
a maioria dos programadores prefiram o Linux ao Windows. As linguagens de pro-
gramac¸a˜o reservam algumas palavras para si, apresentam algumas regras, como forma
de padronizar os co´digos. Fazendo com que os compiladores sejam capazes de entendeˆ-
las. Tais padronizac¸o˜es sa˜o conhecidas por sintaxe da linguagem e palavras reservadas.
Particularmente em linguagem C encontram-se 32 palavras reservadas (padra˜o ANSI)
em BASIC, por exemplo, sa˜o encontradas muito mais que 100 palavras reservadas. Tal
conjunto define a linguagem de programac¸a˜o. e´ necessa´rio atentar para o fato que esta
linguagem e´ case sensitive (sens´ıvel a` caixa baixa e caixa alta), devemos enta˜o ser cuida-
dosos na declarac¸a˜o de varia´veis. Por ter sido criada nos EUA e por se tratar de uma
l´ıngua bastante difundida, os comandos sa˜o todos em ingleˆs, este se revela como um dos
principais empecilhos a` compreensa˜o dos estudantes brasileiros.
Comenta´rios em C
Comenta´rios em C podem ser feitos usando “//COMENTA´RIO” para comenta´rios
de linha e “/∗ COMENTA´RIO ∗/” para comenta´rios que ocupem mais de uma linha.
Vale salientar que e´ importante deixar tais comenta´rios no co´digo fonte para que outros
programadores possam entendeˆ-lo. Todo programa e´ iniciado com a func¸a˜o “main()”, cuja
declarac¸a˜o e´ obrigato´ria, e cada instruc¸a˜o deve ser finalizada com um ponto e v´ırgula “;”.
Um programa em C comec¸a com declarac¸o˜es de tipo e func¸o˜es, para que se possa
posteriormente inserir expresso˜es pro´prias (do programador) atrave´s de operadores e
func¸o˜es.
2.1 Tipos
Toda varia´vel em C precisa ser inicialmente declarada para queo programa possa
alocar memo´ria para seu uso, assim como quais as manipulac¸o˜es que esta podera´ sofrer.
Para este curso ba´sico, o aluno deve ter o conhecimento dos seguintes tipos:
5
Tipo Inteiros
Tipo Extremos
int (−215,215) O tipo inteiro e´ para nu´meros inteiros, por ser de 16 bits, o nu´mero
deve apresentar valo ma´ximo de 32.768.
char [0,128) Para declarac¸a˜o de caracteres, podendo atrave´s da junc¸a˜o das letras
formarem palavras. Na declarac¸a˜o voceˆ tambe´m tem que dizer
quantas letras no ma´ximo o caractere armazenara´.
long (−231,231) Igual ao int, entretanto com 32 bits, tendo assim a capacidade de
guardar nu´meros maiores que o ma´ximo do int.
OBS: Existem mais tipos, mas que na˜o se revelam de interesse para este curso ba´sico em
espec´ıfico.
Tipo Flutuantes
Tipo Extremos
float [−3.4−38,238] Pelo menos 6 d´ıgitos de precisa˜o decimal.
double (−1.7−308,1.7308) Pelo menos 10 d´ıgitos decimais e precisa˜o maior que
do float.
long double (−1.7−308,1.7308) Pelo menos 10 d´ıgitos decimais e precisa˜o maior que
do double.
OBS: Por se tratar do sistema americano, os nu´meros flutuantes sa˜o representados com
“.” e na˜o com “,” como ocorre no Brasil. Cuidado! O uso da v´ırgula podera´ causar erros
na hora de compilar o programa.
Exemplo de declarac¸a˜o de varia´veis:
int a;
float b,c,d,r,A; //atente para o fato de que “a” e´ diferente de “A”
OBS: Uma mesma varia´vel na˜o pode ser declarada como dois tipos diferentes em uma
mesma func¸a˜o, por exemplo:
int a;
float b,a; // “a” que ja´ foi declarado como inteiro, tambe´m e´ declarado
como flutuante, o que ocasionara´ erro na hora de compilac¸a˜o.
A mesma declarac¸a˜o de tipo e´ necessa´ria para as func¸o˜es, uma vez que estas em
sua maioria retornam um atributo, caso na˜o o retorne deve ser declarada como “void
nome−da−func¸a˜o(argumentos)“ (void, do ingleˆs significa nada), os tipos de func¸a˜o sa˜o os
6
mesmos das varia´veis com o acre´scimo do void.
Exemplo de declarac¸a˜o de func¸o˜es:
int funcao da soma de inteiros(int a, int b){EXPRESSA˜O};
void funcao imprimir na tela(char a){EXPRESSA˜O};
2.2 Func¸o˜es
Uso de formas geome´tricas distintas produzindo ac¸o˜es distintas para descrever cada
uma das poss´ıveis ac¸o˜es durante a execuc¸a˜o do algoritmos.As func¸o˜es sa˜o padro˜es de
execuc¸a˜o, na f´ısica existem va´rias func¸o˜es, como a func¸a˜o que determina a posic¸a˜o de
um objeto em movimento partindo de certo ponto com velocidade constante num dado
tempo, representado pela expressa˜o:
S = S0 + vt (2.1)
Para esta func¸a˜o e´ necessa´rio que se conhec¸a o ponto de partida, a velocidade do
carro e o tempo decorrido para o qual se quer saber a posic¸a˜o, colocados na expressa˜o a`
func¸a˜o retorna a posic¸a˜o do objeto no tempo pedido. Basicamente tudo que e´ declarado
no co´digo e´ executado atrave´s de func¸o˜es, embora na˜o se conhec¸a seu co´digo-fonte. No
caso da expressa˜o do exemplo, se teˆm a seguinte declarac¸a˜o da func¸a˜o:
float posicao(float s0, float v, float t){ //o nome da func¸a˜o e´ ”posicao“
float s; //o resultado final e´ declarado
s = s0 + v*t; //expressa˜o que determina a posic¸a˜o final
return s; //o valor da posic¸a˜o final e´ retornado
}
NOTA: Na˜o fique preocupado se na˜o entender parte do co´digo, o importante agora
e´ que tenha conhecimento da estrutura, mais a frente podera´ dominar perfeitamente tais
func¸o˜es ba´sicas. No momento fixe que para iniciar as instruc¸o˜es de uma func¸a˜o deve
comec¸ar com ”{“ e ao final da func¸a˜o fecha´-la com ”}“.
2.3 Expresso˜es
As expresso˜es determinam o que voceˆ quer fazer com suas varia´veis. Assim que sa˜o
declaradas, as varia´veis na˜o possuem atributos, na func¸a˜o principal ”main()“ podemos da´
a ela atributos, que pode ser atrave´s de um nu´mero ou atrave´s de uma expressa˜o, tornando
assim uma varia´vel dependente de outras. Caso queiramos ao longo do programa tambe´m
modificar alguma varia´vel devemos fazer uso de alguma expressa˜o que fac¸a exatamente
o que desejamos. Ou seja, as expressa˜o sera˜o a parte mais subjetiva do programa, uma
vez que cabera´ ao programador usar as func¸o˜es ja´ prontas e as que ele pro´prio declarara´
a fim de que o programa realize aquilo que ele deseja.
7
2.4 Operadores
2.4.1 Operador de atribuic¸a˜o
O operador de atribuic¸a˜o em C e´ o igual ”=“, atrave´s deste atributo o programador
pode atribuir valores inteiros, booleanos, caracteres, sempre de acordo com o que a
varia´vel foi declarada, se houver incompatibilidade o programa na˜o sera´ compilado. Vale
salientar que o ”=“ e´ um atribuidor e na˜o uma igualdade, portanto expresso˜es como:
a = a + 1; (2.2)
2.4.2 Aritme´ticos
Os operadores aritme´ticos em sua maioria ja´ sa˜o bastante conhecidos, abaixo uma
tabela com o s´ımbolo e a atribuic¸a˜o de cada um.
+ Realiza uma soma
- Realiza uma subtrac¸a˜o
* Realiza uma multiplicac¸a˜o
/ Realiza uma divisa˜o
% Retorna o resto de uma divisa˜o
2.4.3 Operadores de Relac¸a˜o e Lo´gico
Outros operadores bastante u´teis sa˜o os operadores relacionais e lo´gicos que trabalham
com relac¸o˜es de verdadeiro ou falso, por exemplo, 8 e´ igual a 8? O que se trata de uma
verdade, mas 8 igual a 10 e´ falso. Abaixo uma tabela com os principais operadores
relacionais e lo´gicos.
Operadores Lo´gicos
&& AND
|| OR
! NOT
Operadores Relacionais
== Comparador de igualdade
! = Comparador de diferenc¸a
> Maior que
>= Maior ou igual
< Menor que
<= Menor ou igual
2.4.4 Incremento e decremento
Um operador bastante utilizador em C, que inclusive dara´ nome a sua posterior (C++)
e´ o incrementador, ele acrescenta uma unidade a` varia´vel, o decrementador (–) subtrai
uma. Ex: a=10, usando a++; ”a“ agora passa a valer 11. Tal operac¸a˜o tambe´m poderia
ter sido feita: a = a + 1;
8
2.5 Precedeˆncia
Deve-se atentar para operac¸o˜es escritas com va´rios operadores, ja´ que eles apresentam
uma ordem de precedeˆncia, portanto e´ aconselha´vel o constante uso de parentes para
separar as operac¸o˜es. A ordem de precedeˆncia das operac¸o˜es e´ a seguinte:
1o. ++ e −−
2o. *, / e %
3o. + e
Ex:
a = 10 + 6/3 ∗ 3− 2%1; resultaria em:
a = 10 + [(6/3) ∗ 3]− (2%1);
a = 10 + [2 ∗ 3]− 0;
a = 16;
9
Cap´ıtulo 3
Func¸o˜es Ba´sicas
Na medida em que a linguagem C foi crescendo, bibliotecas foram criadas para que
assim na˜o fosse necessa´rio criar co´digos para execuc¸o˜es ba´sicas, facilitando assim a` difusa˜o
da linguagem, uma vez que iniciantes passavam a usar a linguagem mais rapidamente.
No caso de C, a biblioteca ba´sica necessa´ria para executar comandos de entrada e sa´ıda
e´ a ”stdio“. Tal biblioteca carrega func¸o˜es padro˜es (standard std) de entrada e sa´ıda
(input and output io), devemos inclu´ı-la em todo in´ıcio de co´digo atrave´s do seguinte
comando:
# include <stdio.h>
.h e´ a extensa˜o do arquivo que conte´m as func¸o˜es ja´ prontas, no caso desta, o compi-
lador ja´ a conte´m dentro da pasta ”.../include“ do programa que utilizado para compilar..
Sabendo como instalar a biblioteca de func¸o˜es padro˜es de entrada e sa´ıda, resta conhecer
as func¸o˜es e o que cada uma delas faz.
3.1 printf();
Tal func¸a˜o imprime na tela do computador o que o programador digitar entre aspas
dentro dos pareˆnteses. Primeiro exemplo de programa:
# include <stdio.h>
int main(){ //a func¸a˜o main deve ser declara como int
printf(“Ola Mundo!”);
}
A estrutura desse programa e´ bastante simples, atente para o fato de que a func¸a˜o
principal ”main“ e´ declarada como int, tal fato se deve porque int e´ um alocador bastante
simples que torna o programa mais eficiente. Pode-se declarar a func¸a˜o com qualquer
tipo, uma vez que a mesma na˜o retornara´ nada, o que na˜o e´ aconselhado, pois, perder-
se-ia alguns mile´simos de segundos que em alguns programas torna-se muito importante.
Para imprimir uma varia´vel, deve-secolocar dentro das aspas % e a letra que representa
o tipo da varia´vel, logo apo´s as aspas e entre os pareˆnteses coloca-se uma v´ırgula e so´
enta˜o a varia´vel. Exemplo:
# include <stdio.h>
10
int main(){
int a;
float b;
char c[10]; //tal caractere recebe uma palavra de ate´ no ma´ximo 10 letras
a=10;
b=2.5;
c=”palavrad10“;
printf(”Vou imprimir um inteiro %d, agora um flutuante %f e para termi-
nar um caractere %c“,a,b,c);
/*deve-se colocar as varia´veis na ordem que foi as usando dentro dos pareˆnteses*/
}
Caso a varia´vel seja do tipo float pode-se especificar a precisa˜o na qual se deseja im-
primir, por exemplo, para imprimir um nu´mero com duas casas decimais deve-se colocar:
%.2f.
3.2 scanf();
Esta func¸a˜o e´ a ba´sica de leitura, com ela pode-se ter uma conexa˜o com o usua´rio,
assim o mesmo pode enviar dados para o programa processar. Exemplo:
Programa para calculo da me´dia da UFRN
# include <stdio.h>
int main(){
float n1,n2,n3,m;
printf(”Digite suas treˆs notas na ordem que foram realizadas: \n”); // o
“\n” serve para pular uma linha
scanf(“%f%f%f“,&n1, &n2, &n3);
/*Ao usar o scanf deve-se colocar o & na frente da vara´vel, tal fato se deve
porque o atributo & serve direcionar o enderec¸o em que o conteu´do lido sera´ guardado,
caso isso na˜o fosse usado o conteu´do lido na˜o seria guardado no enderec¸o de memo´ria
da varia´vel requerida. Portanto na˜o esquec¸a*/
m = (4*n1+5*n2+6*n3)/15;
printf(”Sua media eh %.2f“,m); //lembre-se de na˜o usar acento nas palavras
}
11
Cap´ıtulo 4
Estruturas de Controle de Fluxo
As estruturas de controle de fluxo controlam o fluxo da execuc¸a˜o do programa, elas
podem ser condicionais (if e switch), loop (for, while e do-while) e de desvio incondicional
(goto, esta u´ltima e´ raramente utilizada).
4.1 IF
A pro´pria traduc¸a˜o diz tudo, se algo for verdadeiro, fac¸a, podendo ainda incluir o
”else“ para o caso negativo e passando tambe´m para este uma instruc¸a˜o. Exemplo:
Programa da me´dia melhorado (incluindo um impressa˜o de aprovac¸a˜o, 4a.
prova e recuperac¸a˜o)
# include <stdio.h>
int main(){
float n1,n2,n3,m;
printf(”Digite suas treˆs notas na ordem que foram realizadas: \n”); // o
“\n” serve para pular uma linha
scanf(“%f%f%f“,&n1, &n2, &n3);
m = (4*n1+5*n2+6*n3)/15;
if(m>=7){
printf(”Sua media e´ %.2f, parabe´ns voceˆ foi aprovado.\n”,m);
}
else{
if(m>=3){
printf(”Sua media e´ %.2f, voceˆ esta´ na quarta prova.\n“,m);
}
else{
printf(”Sua media e´ %.2f, voceˆ esta´ reprovado.\n“,m);
}
}
}
12
4.2 SWITCH
O que o switch faz seria perfeitamente feito por va´rios ”if“, mas daria muito trabalho
e ficaria de certa forma desorganizado. O switch como o pro´prio nome diz faz uma es-
colha, ele pega uma varia´vel e de acordo com o valor contido nesta varia´vel ele toma uma
decisa˜o, e´ bastante u´til na construc¸a˜o de menus primitivos, como o mostrado abaixo.
Analise bem a sintaxe, pois e´ a que apresenta mais diferenc¸a em relac¸a˜o a`s outras estru-
turas, por isso, facilmente esquecida:
# include <stdio.h>
int main(){
int idade,escolha;
char nome[50],sexo[1];
printf(”##### Banco de dados #####\n\nDigite seu nome: “);
gets(nome);
/*a func¸a˜o gets e´ semelhante a scanf no entanto so´ serve para a leitura de caracteres
que necessitam do uso da barra de espac¸o como elemento, caso fosse usado o scanf assim
que aperta´ssemos a barra de espac¸o a leitura do caractere seria finalizada.*/
print(”Digite sua idade: “);
scanf(”%d“,&idade);
printf(”Digite seu sexo (M/F): “);
scanf(”%c”,sexo); //para a leitura de caracteres na˜o e´ necessa´rio usar o
&
printf(“\nDigite 1 para ver o nome digitado, 2 para ver a idade ou 3 para
ver o sexo digitado: “);
scanf(”%d“,&escolha);
switch(escolha){
case 1:
{
printf(”%c“,nome);
break; /*o comando break finaliza qualquer estrutura de con-
trole de fluxo, caso na˜o fosse colocado os comandos dentro dos outros ”case“ tambe´m
sera˜o executados*/
}
case 2:
{
printf(”%d“,idade);
break;
}
case 3:
{
printf(”%c“,sexo);
break;
}
default: /*o default e´ acionado caso o usua´rio digite algo que voceˆ
na˜o relacionou nos ”case”*/
13
{
printf(“Voce na˜o digitou nenhum dos numeros solicitados”);
break;
}
}
}
4.3 FOR
O “for” faz um loop (lac¸o) atrave´s de um contador, ele realiza, portanto os comandos
dentro do for a quantidade de vezes desejadas, seguindo a seguinte estrutura:
1o. declarac¸a˜o de uma varia´vel qualquer, geralmente chamada de i;
2o. Uso da estrutura passando como argumentos o valor inicial da varia´vel contadora,
o seu valor ma´ximo e qual o passo de crescimento;
Exemplo:
# include <stdio.h>
int main(){
int i;
printf(“Este programa mostrara´ todos os numeros pares ate´ 100:\n”);
for(i=0;i<=100;i=i+2){
printf(“%d\t”,i); // “\t” imprime um backspace
}
}
OBS: Pode-se ou na˜o usar a varia´vel contadora, no caso i, o importante e´ que ela
tenha um in´ıcio e fim, caso seja colocada uma expressa˜o que nunca leve a varia´vel a chegar
a seu limite, os comandos sera˜o executados ate´ o ponto em que o computador travara´ por
falta de memo´ria. Por exemplo, se tivesse sido colocado “for(i=0;i¡=100;i–){”, i comec¸a
em 0 e so´ diminui, nunca cresce para chegar no seu limite que e´ 101, porque no 100 o
loop ainda funcionara´ ja´ que foi usado maior ou igual.
4.4 WHILE
O while e´ um loop que funcionara´ enquanto algo for verdade, se for fornecido como
argumentos para o while 10¿8, por se tratar de uma verdade ele funcionara´ eternamente,
no entanto se fornecido 8¿10 ele nunca funcionara´ por na˜o se tratar de uma verdade.
e´ perfeitamente poss´ıvel fazer com um while tudo que um for faz, portanto esta e´ uma
estrutura bastante poderosa.
Exemplo:
# include <stdio.h>
int main(){
14
int continuacao;
continuacao=1;
while(continuacao == 1){
printf(“Quer executar esse programa novamente? Digite 1 caso
queira, e 0 caso na˜o queira ”);
}
}
15
Cap´ıtulo 5
Vetores
Os vetores sa˜o varia´veis que guardam mais de um elemento em uma mesma varia´vel de
mesmo nome, para tanto na declarac¸a˜o da varia´vel coloca-se a quantidade de elementos
que a mesma guardara´ atrave´s de colchetes e o nu´mero de elementos da seguinte forma:
VARIAVEL[NUMERO DE ELEMENTOS]. Cada elemento pode ser resgatado do vetor
acessando-se sua posic¸a˜o no vetor que inicia no zero e vai ate´ o numero de elementos
menos um. Vejamos um programa que calcula a me´dia da UFRN usando vetores:
Exemplo:
# include <stdio.h>
int main(){
int peso[3],i;
float nota[3],media;
for(i=0;i<3;i++){
printf(“\nDigite a nota %d”,i+1);
scanf(“%d”,&nota[i]);
}
peso[0]=4;
peso[1]=5;
peso[2]=6;
media=0;
for(i=0;i<3;i++){
media=media+peso[i]*nota[i];
}
media=media/15;
printf(“Sua media eh %f”,media);
}
16
Cap´ıtulo 6
Matrizes
Da mesma forma que uma varia´vel guarda va´rios elementos, que chamamos de vetor,
pode-se fazer um vetor que guarde va´rios vetores, chamado de matrizes e apresenta a
seguinte estrutura: VARIAVEL[N DE ELEMENTOS]. Poder-se-ia inclusive incluir mais
uma quantidade de elementos obtendo assim um vetor de matrizes, e assim por diante.
Vamos fazer agora um programa que pede ao usua´rio os elementos que ele quer colocar
em uma matriz 2X2 e que a imprima.
Exemplo:
# include <stdio.h>
int main(){
int i,j;
float matriz[2][2];
for(i=0;i<2;i++){
for(j=0;j<2;j++){
printf(“Digite o elemento %dX%d da matriz:”,i+1,j+1);
scanf(“%f”,&matriz[i][j]);
}
}
printf(“[”);
for(i=0;i<2;i++){
for(j=0;j<2;j++){
printf(“%f ”, matriz[i][j]);
}
printf(“\n”);
}
printf(“]”);
}
17

Outros materiais