You are on page 1of 85

Linguagem de

Programao C

Cleide Bittencourt
cleidetb@gmail.com
Breve Histrico
Em 1973 Dennis Ritchie reescreveu o sistema
operacional UNIX em uma linguagem de alto
nvel (Ling. C).

Surgem diversas implementaes utilizando C,


porm os cdigos gerados eram incompatveis.

ANSI (American National Standard Institute),


em 1983 padronizou a ling. C.

Introduo Linguagem C
C comparado a outras
linguagens
Devemos entender Nvel Alto como sendo a
capacidade da linguagem em compreender
instrues escritas em dialetos prximos do
ingls (Ada e Pascal, por exemplo) e Nvel Baixo
para aquelas linguagens que se aproximam do
assembly, que a linguagem prpria da mquina,
compostas por instrues binrias e outras
incompreensveis para o ser humano no treinado
para este propsito. Infelizmente, quanto mais
clara uma linguagem for para o humano
(simplicidade >) mais obscura o ser para a
mquina (velocidade <).

Introduo Linguagem C
C comparado a outras
linguagens
Nvel Baixo Nvel Mdio Nvel Alto

Clareza
Velocidade

C Basic Pascal Ada


Assembler
COBOL Modula -2

Introduo Linguagem C
Aplicaes escritas em C
Sistema Operacional: UNIX
Planilhas: 1,2,3 e Excel
Banco de Dados: dBase III, IV e Access
( gerenciador de base de dados).
Aplicaes Grficas: Efeitos Especiais
de filmes como Star Trek e Star War.

Introduo Linguagem C
Caractersticas da Linguagem C
Portabilidade entre mquinas e sistemas
operacionais.
Alia caractersticas de linguagens de alto e
baixo nvel (liberdade ao programador).
Programas Estruturados.
Total interao com o Sistema Operacional.
Cdigo compacto e rpido, quando
comparado ao cdigo de outras linguagem
de complexidade anloga.

Introduo Linguagem C
Caractersticas da Linguagem C
C uma linguagem compilada: l
todo o cdigo fonte e gera o cdigo
objeto (ling. de mquina) uma nica
vez.

Linguagens Interpretadas: l o
cdigo fonte, traduz e executa,
repete esse ciclo cada vez que o
programa for executado.
Introduo Linguagem C
Detalhes Importantes
Sempre que o cdigo fonte for alterado
ele deve ser Novamente Compilado.

C case sensitive

Deve-se listar antecipadamente todas as


variveis utilizadas no programa.

Introduo Linguagem C
Palavras reservadas
So palavras que tm um significado
especial para a linguagem.
auto, break, case, if, for, while, begin, end,
continue, return, const,....

C entende tais palavras apenas em


letras minsculas, ou seja,
palavras reservadas
obrigatoriamente devem estar em
letras minsculas.
Introduo Linguagem C
Bibliotecas
Conjunto de funes para realizar tarefas
especficas.
Biblioteca padro C - ANSI - funes bsicas.
As primeiras linhas do programa indicam as
bibliotecas utilizadas

#include minha_biblioteca.h ou
#include <minha_biblioteca.h>

Introduo Linguagem C
Estrutura de um programa
C
/* Primeiro Programa em C */
#include <stdio.h>
#include <stdlib.h>

int main()
{
printf(Meu primeiro programa em C\n);
System(pause);
}

Introduo Linguagem C
Estrutura de um programa
C
/* Primeiro Programa em C */ comentrios
#include <stdio.h> /*biblioteca de E/S */

int main() /*funo principal inicio do programa*/


{ /*marca incio da funo*/
printf(Meu primeiro programa em C\n);
/*funo para escrever na tela*/
system(pause);
/*comando para segurar mensagem em tela*/

} /*marca fim da funo*/

Introduo Linguagem C
Digitando um programa C
Utilizar um editor qualquer: Dev-C++
www.bloodshed.net
Digite o programa anterior

Salve com o nome p1.c


A extenso .c j o padro do Dev

Introduo Linguagem C
Compilando e Executando
Para compilar: (verifica a sintaxe)
Executar / compilar ou
Para executar: (exibir tela para usurio)

Executar / Executar ou
Para compilar e executar:

(simultaneamente)
Executar/Compilar & Executar ou

Introduo Linguagem C
Varivel
Varivel: objeto que pode assumir
diversos valores;
espao de memria de um certo tipo de
dado associado a um nome para
referenciar seu contedo
Main ( )
{
int idade;
idade = 30;
printf ( A idade : %d, idade);
}

Introduo Linguagem C
Nomes de Variveis
quantos caracteres quiser at o limite (32);
comece com letras ou sublinhado:
Seguidos de letras, nmeros ou sublinhados
C sensvel ao caso:
peso <> Peso <> pEso
no podemos definir um identificador com o
mesmo nome que uma palavra chave
auto static extern int long if while do ......

Introduo Linguagem C
Declarao de Variveis
Instruo para reservar uma
quantidade de memria para um
certo tipo de dado, indicando o nome
pelo qual a rea ser referenciada
>> tipo nome-da-varivel; ou
>> tipo nome1, nome2,...,nomen;
EX: char nome;
int idade, num;

Introduo Linguagem C
Tipos Bsicos de Dados
determinar um conjunto de valores e as possveis
operaes realizadas sobre os mesmos ;
informa a quantidade de memria (bytes);

tipo bytes escala

char 1 -128 a 127


int 2 -32.768 a 32.767
float 4 3.4e-38 a 3.4e+38
double 8 1.7e-308 a 1.7e+308

Introduo Linguagem C
Diferentes tipos de inteiros

Long ou Long int (4 bytes)
Unsigned Char (0 a 255)
Unsigned int (0 a 65.535)

obs: int tem sempre o tamanho da


palavra da mquina
Introduo Linguagem C
Programa Exemplo Tipos de
Dados e Variveis
#include <stdio.h>
main( )
{
int soma=10;
float money=2.21;
char letra= A;
double pi=2.01E6;

printf (valor de soma = %d\n, soma);


printf (Valor de Money = %f\n, money);
printf(Valor de Letra = %c\n, letra);
printf(Valor de Pi = %e\n, pi);

} Introduo Linguagem C
Comandos bsicos

Entrada Sada
Processamento de
de de dados Dados
Dados

Instrues de E/S

Introduo Linguagem C
Intrues de E/S Scanf ( )
Leitura de dados tipados via
teclado
Scanf (string de controle, lista de
argumentos);
OBS: Para seqncia
Exemplo: de caracteres (%s),
scanf(%d,&idade); o caracter & no
dever ser usado.

Introduo Linguagem C
Comandos de E/S printf (
)
Apresentao de dados no monitor
printf(string de controle, lista de
argumentos);

Exemplo:
printf (Digite a sua idade:\n);
scanf (%d, &idade);
printf(Sua idade : %d, idade);

Introduo Linguagem C
String de controle
%c caracter
%d inteiro
%e nmero ou notao cientfica
%f ponto flutuante
%o octal
%x hexadecimal
%s string (cadeia de caracteres)
%lf double

Introduo Linguagem C
Exemplo strings de
controle
#include <stdio.h>
main ( )
{
char a ;
printf ( digite um caracter );
scanf ( % c, &a );
printf ( \n %c = %d em decimal, a, a);
printf (%o em octal, %x em hexadecimal, a, a);
}

Digitando m:
m = 109 em decimal, 155 em octal, 6d em
hexadecimal

Introduo Linguagem C
Operador de Endereo &
um endereo de memria o nome que o
computador usa para identificar uma varivel

toda varivel ocupa uma rea de memria e


seu endereo o primeiro byte por ela
ocupado

Ex:
inteiro2bytes
float4bytes
char 1 byte

Introduo Linguagem C
Operador de Endereo &
Quando usamos & precedendo uma
varivel estamos falando do
endereo desta varivel na memria

Ex: Sada: valor = 2, endereo = 1230


Main ( ) Varia conforme memria da mquina
{
int num;
num = 2;
printf (valor = %d, endereo = %Iu, num,&num);
}

Introduo Linguagem C
Caracteres Especiais
\n nova linha
\r enter
\t tabulao (tab)
\b retrocesso
\ aspas
\\ barra

Introduo Linguagem C
Formatando as sadas -
printf
possvel estabelecer o tamanho mnimo
para a impresso de um campo
#include <stdio.h>
main ( )
{
printf (os alunos so %2d \n, 350);
printf (os alunos so %4d \n, 350);
printf (os alunos so %5d \n, 350);
}
Sada: os alunos so 350
os alunos so 350
os alunos so 350
Introduo Linguagem C
Formatando as sadas -
printf
#include <stdio.h>
main ( )
{
printf ( %3.1f \n, 3456.78);
printf ( %10.3f \n, 3456.78);
}

Sada: 3456.8
3456.780

Introduo Linguagem C
Programando Exerccio 1
Faa um programa para ler e escrever na
tela o seu nome e a sua idade.
#include <stdio.h>
main( )
{
int idade;
char nome[30];
printf (Digite o seu nome:\n);
scanf(%s, nome);
printf (Digite a sua idade:\n);
scanf (%d, &idade);
printf(A idade do(a) %s %d,nome, idade);
} Introduo Linguagem C
Operadores Aritmticos

Operador Ao
+ Adio
* Multiplicao
/ Diviso
% Resto da diviso
inteira
- Subtrao (unrio)
-- Decremento
++ Incremento
Introduo Linguagem C
Operadores Relacionais e
Lgicos
Operador Ao
> Maior que
>= Maior ou igual que
< Menor que
<= Menor ou igual que
== Igual a
!= Diferente de
&& Condio E
|| Condio OU
! No
Introduo Linguagem C
Operadores - Observao
Em C o resultado da comparao
ser ZERO se resultar em FALSO e
DIFERENTE DE ZERO no caso de
obtermos VERDADEIRO num teste
qualquer.

Introduo Linguagem C
Operadores - Exemplo
#include <stdio.h>
main ( ) Sada: Verd.=1 Falso = 0
{
int verdadeiro, falso;

verdadeiro = (15 < 20);


falso = (15 == 20);
printf(Verd.= %d,Falso= %d,
verdadeiro, falso);
}

Introduo Linguagem C
Comparaes e Testes
Observemos antes de mais nada
que ++x diferente de x++!
Se
x = 10; porm Se
x = 10;
y = ++x;
y = x++;
/* x=x+1; y=x; */
/* y=x; x=x+1 */
ento ento
x = 11 e x = 11 e
y = 11 y = 10

Introduo Linguagem C
Programa Exemplo
Pre/Pos Incremento
#include<stdio.h>
main()
{
int cont = 0, loop;
loop=++cont;
printf(Loop=%d, Cont=%d\n, loop, cont);

loop=cont++;
printf(Loop=%d, Cont=%d\n, loop, cont);

Quais so as sadas deste programa ?

Introduo Linguagem C
Comparaes e Testes
Se
x = 1;
y = 2;
printf(%d == %d e %d\n, x, y, x==y )

Qual seria a sada deste comando?


resultaria em 1 == 2 0
(pois a expresso falsa)
Introduo Linguagem C
Comparaes e Testes

if (10 > 4 && !(10 < 9) || 3 <= 4)

Como seria avaliado esta instruo?


resultaria em Verdadeiro, pois dez
maior que quatro E dez no menor
que nove OU trs menor ou igual a
quatro

Introduo Linguagem C
Operador Sizeof

Este operador retorna o tamanho da


varivel ou tipo que est em seu operando.

Por exemplo sizeof(char) resultaria em 1.

Introduo Linguagem C
Converses de Tipos
Quando forem misturadas variveis de diferentes tipos, o
compilador C converter os operandos para o tipo de
operando maior, de acordo com as regras descritas a seguir:

1-Todo char e short int convertido para int. Todo float


convertido para double.
2-Para os demais pares de operandos valem as seguintes
regras em seqncia:

2.1- Se um operando for long double, o outro tambm o
ser.
2.2- Se um operando for double, o outro tambm o ser.

2.3- Se um operando for long, o outro tambm o ser.

2.4- Se um operando for unsigned, o outro tambm o ser.

Introduo Linguagem C
Converses de Tipos -
NOTA
Nota: Devemos observar que o compilador C bastante flexvel e
pouco vigilante, comportando-se de maneira muito diferente de
um compilador Clipper ou Pascal, sempre vigilantes com relao
aos tipos das variveis. De fato aqueles compiladores podem gerar
executveis misturando tipos, porm a ocorrncia de erros de
execuo quase inevitvel. Ao contrrio destes compiladores, os
compiladores C ajeitam as coisas para o programa funcionar da
melhor maneira possvel, o que no significa em hiptese
alguma que os resultados sero os esperados por programadores
relapsos. Assim esta boa caracterstica dos compiladores C, pode
transformar-se numa autntica bomba relgio para programas
no muito bem elaborados.

Introduo Linguagem C
Estruturas de Deciso
Permitir testes para decidir aes
alternativas:
if
if - else
switch
(?:) Operador Condicional

Introduo Linguagem C
Comando if
if (condio) {
if (condio) instruo1;
instruo; intruo2;
}
#include<stdio.h> #include<stdio.h>
main() main()
{ {
charch; if(getchar())==p){
ch=getchar(); printf(vocdigitoup);
if(ch==p) printf(pressioneoutratecla);
printf(vocpressionoua getchar();
teclap); }
} }

Introduo Linguagem C
if aninhados
Se um comando if est dentro do outro if,
dizemos que o if interno est aninhado.
#include<stdio.h> #include<stdio.h>
main() main()
{ {
charch; charch;
printf(digiteumaletra printf(digiteumaletra
entreAeZ); entreAeZ);
ch=getchar(); ch=getchar();
if(ch>=A) if((ch>=A)&&(ch<=Z))
if(ch<=Z) printf(vocacertou);
printf(vocacertou); }
}

Introduo Linguagem C
Comando if-else
O comando if s executa a instruo
caso a condio de teste seja
verdadeira, nada fazendo se a
expresso for falsa.

O comando else executar uma


instruo ou um conjunto de instrues
se a expresso for falsa.
Introduo Linguagem C
Comando if-else
if (condio) #include <stdio.h>
instruo; main ( )
{
else if (getchar ( ) == p)
instruo; printf ( voc digitou p);
else
printf ( voc no digitou p);
}

Introduo Linguagem C
Exemplo: Evitar-se divises por Zero,
usando recursos do comando if-else.
include <stdio.h>
main()
{
int a,b;
printf(Digite 2 nmeros: );
scanf(%d %d,&a,&b);
if (b)
printf(%f,a/b);
else
printf(Nao posso dividir por zero\n);
}
Introduo Linguagem C
Comando if-else aninhados
#include<stdio.h>
if (condio1) main()
{
instruo intnmero;
else if scanf(%d,&nmero);
(condio2) if(nmero<0)
printf(nmeromenorquezero);
instruo elseif(nmero<10)
else if printf(nmeroe<10);
elseif(nmero<100)
(condio3)...
printf(nmero10e<100);
else
printf(nmero100);
}

Introduo Linguagem C
Como o computador decide de
qual if o else pertence?
else sempre associado ao if mais
interno
Ex2:
EX1: quando z = b ser executado?
if(n>0){
if(n>0) if(a>b)
if(a>b){ z=a;
z=a; }else
calculafatorial(z); z = b;
}
else
Ex1: Quando n > 0 e a < b
z = b; Ex2: Quando n < 0
Introduo Linguagem C
Exemplo 1: Programa Adulto, Jovem ou
Velho.
#include <stdio.h>
main()
{
int i;
printf(Digite sua idade: );
scanf(%d,&i);
if (i > 70)
printf(Esta Velho!);
else
if (i > 21)
printf(Adulto);
else
printf(Jovem);
}

Introduo Linguagem C
Exemplo2:Maiorentretrsnmeros
main() main()
{ {
inta,b,c; inta,b,c,d;
printf(Digiteo1Nmero:); cls();
scanf(%d,&a); printf(Digiteo1Nmero:);
printf(\nDigiteo2Nmero:); scanf(%d,&a);
scanf(%d,&b);
printf(\nDigiteo2Nmero:);
printf(\nDigiteo3Nmero:);
scanf(%d,&b);
scanf(%d,&c);
printf(\nDigiteo3Nmero:);
if(a>b)
scanf(%d,&c);
if(a>c)
printf(\nOMaior%d,a);
if(a>b)
else d=a;
printf(\nOMaior%d,c); else
else d=b;
if(b>c) if(c>d)
printf(\nOMaior%d,b); printf(\nOMaior%d,c);
else else
printf(\nOMaior%d,c); printf(\nOMaior%d,d);
} }
Exemplo 3: Dados 2 nmeros apresente-
os ordenados.
main()
{
inta,b,t;
printf(Digiteo1Nmero:);
scanf(%d,&a);
printf(\nDigiteo2Nmero:);
scanf(%d,&b);
if(a<b){
t=a;
a=b;
b=t;
}
printf(\nOrdenados: %d e %d ,b,a);
}
Introduo Linguagem C
Comando ?:
Forma compacta de expressar uma
instruo if else
(condio) ? expresso1 : expresso2
Max = (num1 > num2) ? num1 : num2
Note:
if (num1 > num2) max = num1;
else max = num2;
Exemplo:
ABS = (num < 0) ? - num : num;

Introduo Linguagem C
Comando Switch
Forma de se substituir o comando if
else ao se executar vrios testes
Diversas vezes precisamos determinar
se um valor encontra-se numa lista de
valores. Apesar de podermos usar uma
seqncia de ifs, este recurso alm de
no ser elegante, por vezes confunde o
entendimento do programa. Vejamos
uma opo melhor: o comando switch.

Introduo Linguagem C
Comando Switch
switch <varivel> { OBS:
case <constante 1> :
<comandos>;
varivel deve ser uma
[break;] varivel do tipo inteiro ou
case <constante 2> : caracter;
<comandos>; break serve para terminar
[break;] a seqncia de comandos em
case <constante 3> : execuo, por serem
<comandos>; opcionais, se forem
[break;] suprimidos permitem que o
[default : case a seguir seja
<comandos>;] executado, sem haver
} qualquer quebra na
seqncia do processamento.
Comando Switch - Ex: uma calculadora
#include <stdio.h>
main ( )
{
char op;
float num 1, num 2;

printf ( digite um n.o, um operador e um n.o);


scanf ( %f %c %f, &num1, &op, &num2);
switch (op) {
case +:
printf ( = %f, num 1 + num 2);
break:
case -:
printf ( = %f, num 1 - num 2);
break;
default:
printf ( operador invlido);
}

}
Estruturas de Repetio
#include <stdio.h>
main ( )
{ Como imprimir os
printf (1); 1000 1os nmeros
printf (2); a partir de 1?
: : :
printf (10);
}
sada: 1 2 3 4 ...
10

Introduo Linguagem C
Estruturas de Repetio
for, while, do-while
repetir uma seqncia de comandos

#include<stdio.h>
main ( )
{
int num;

for (num = 1; num <= 1000; num++)


printf ( % d, num);
}
Sada: 1 2 3 ... 1000

Introduo Linguagem C
Comando for
for (<incio>;<condio>;<incremento>) <comand

Na forma mais simples:


Inicializao:
expressodeatribuio
sempreexecutadaumanicavez
Teste:
condioquecontrolaaexecuodolao
sempreavaliadaacadaexecuo
verdadeirocontinuaaexecuo
falsoparaaexecuo
Introduo Linguagem C
Comando for
Incremento:
define como a varivel de controle ser

alterada
sempre executada aps a execuo do corpo

do lao
Exemplo: imprimindo nmeros pares

#include<stdio.h> Sada 2 4 6 8
main ( )
{
int nmero;

for ( nmero = 2; nmero < 10; nmero += 2 )
printf ( %d, nmero);
}
Comando for
Flexibilidade: qualquer expresso de um lao for
pode conter vrias instrues separadas por vrgula.

for (x=0,y=0;x+y<100;++x,y=y+x)
printf(%d,x+y);

Esta instruo inicializaria x e y com zero,


incrementando x de 1 em 1 e y receberia seu valor
acrescido do de x. O resultado a cada iterao seria
impresso desta forma: 0 (x=0 e y=0) 2 (x=1 e y=1)
5 (x=2 e y=3) 9 14 e assim sucessivamente.
Comando for - Exemplo
Exemplo 1: Contagem simples com condio no teste for.
main()
{
int i,j,resposta;
char feito = ;
for (i=1;i<100 && feito != N;i++) {
for (j=1;j<10;j++) {
printf(Quanto e %d + %d? ,i,j);
scanf(%d,&resposta);
getchar(); /* limpar o buffer do teclado */
if (resposta != i+j)
printf(Errou!\n);
else
printf(Acertou!\n);
}
printf(Mais? (S/N) );
scanf(%c,&feito);
getchar(); /* limpar o buffer do teclado */
}
}
Comando for loop infinito
for(;;)
printf(Este loop rodar eternamente!\n);

A ausncia de condies de inicializao,


continuidade e terminao, causaro um
processo contnuo e teoricamente infinito
(veremos posteriormente a intruo break,
que tem a capacidade de encerrar um
processo assemelhado ao exemplificado).

Introduo Linguagem C
Comando for Loop Vazio

for(i=0;i<10;i++);

A presena do ponto e vrgula


finalizando o comando, fora a
execuo do loop sem que seja
executado qualquer outro comando.

Introduo Linguagem C
Comando for Loop Finito
Ao contrrio de outras linguagens que no permitem o trmino do
loop a no ser quando a condio de finalizao for satisfeita, a
linguagem C permite que um loop seja interrompido antes de seu
trmino normal (desestruturao) sem que exista qualquer tipo de
inconveniente. O comando break causa essa interrupo.

for(;;) {
scanf(%c,&c);
if (c == A)
break;
/*interrompe o que deveria ser um lao eterno*/
}
printf(Fim do Loop!);
Comando While
while <condio> <comando>;

Exemplo: Contagem
O loop se repete,
#include <stdio.h> enquanto a
main()
{
condio for
int i=0; verdadeira
while (i < 10) {
printf(%d,i);
i++;
}
}
Introduo Linguagem C
Comando do - while
Ao contrrio das estruturas for e while que
testam a condio no comeo do loop, do /
while sempre a testa no final, garantido a
execuo ao menos uma vez da estrutura.

Exemplo: Trmino determinado


pelo usurio.
#include <stdio.h>
do { main()
<comandos>; {
} while <condio>; int num;
do {
scanf(%d,&num);
} while (num < 100);
}
/ * testa a capacidade de adivinhar uma letra * /
#include<stdio.h>
main() {
charch;
inttentativas;
do{
printf(digiteumaletra);
scanf(%c,ch);getchar();
tentativas=1;
while(ch!=t){
printf(%cincorreto\n,ch);
tentativas++;
printf(tentenovamente\n);
}
printf(%ccorreto,ch);
printf(acertouem%dvezes,tentativas);
printf(continua?(s/n):);
scanf(%c,ch);getchar();
}while(ch==s);
}
Vetores
tipodedadousadopararepresentarumacoleode
variveisdeummesmotipo
estrutura de dados homognea
unidimensional
Ex: Ler a nota de 3 alunos e calcular a mdia

intnota0,nota1,nota2;

printf(entrecoma1a.nota);
scanf(%d,&nota0);
: : :
printf(mdia = %f, (nota0 + nota1 + nota2) / 3));
Introduo Linguagem C
Ex: Calcular a mdia de 300 alunos
#include<stdio.h>
#define N_ALUNOS 40
main( )
{ int i;
float notas [ N_ALUNOS ], media = 0;

for ( i = 0; i < N_ALUNOS; i++ ) {


printf (entre com a nota %d, i+1);
scanf (%f, &notas[ i ]);
media += notas [ i ];
}
printf ( Mdia = %f \n, media / N_ALUNOS);

for ( i = 0; i < N_ALUNOS; i++ ) {


printf (\n Nota do aluno %d = , i+1);
printf (%f \n, notas[ i ]);
}
}
Vetores Observaes
importantes
emCnoexistedeclaraodevetor
dinmico
o tamanho de um vetor tem que ser
determinado em tempo de compilao
Ex: intalunos;
intnotas[alunos];
:: :
printf(entrecomonmerodealunos);
scanf(%d,&alunos);

NO ACEITO !!!
Introduo Linguagem C
Vetores Observaes
importantes
Soluo: declarar um vetor que
suporte um nmero mximo de
elementos
Ex: intalunos;
intnotas[70];
:: :
printf(entrecomonmerodealunos);
scanf (%d, &alunos);

Introduo Linguagem C
Vetores Observaes
importantes
Cnorealizaverificaodelimitesem
vetores

nada impede o acesso alm do fim do


vetor

faa sempre que necessrio a


verificao dos limites

Introduo Linguagem C
#include<stdio.h>
#defineTAMANHO100 Vetores Obs importantes
main()
{
int quantidade,media=0;
floatnotas[TAMANHO];
// quantidade deve ser TAMANHO
printf(quantasnotasdevoler?);
scanf(%d,&quantidade);
for(i=0;i<quantidade;i++){
printf(entrecomanota%d,i+1);
scanf(%d,&notas[i]);
}
: : :
for(i=0;i<quantidade;i++)
media+=notas[i];
: : :
Matrizes
emCpodemosdefinirumvetoremque
cadaposiotemosumoutrovetor(matriz).
estruturadedadoshomognea
multidimensional
Note:
int matria [ 4 ] [ 40 ];
temos 4 matrias, cada uma com 40
alunos

Introduo Linguagem C
Matrizes - Leitura
inti,j,matria[4][40];

for(i=0;i<4;i++){
printf(entrecomasnotasdamatria%d,i+1);
for(j=0;j<40;j++){
printf(entrecomanotadoaluno%d,j+1);
scanf(%d,&materia[i][j]);
}
}
Introduo Linguagem C
Varivel String
matrizdotipocharterminadapelocaracterenull\0
cada caractere de um string pode ser acessado
individualmente
vetor de tamanho n string de tamanho ( n-1 )
Ex:
charstring[10]=exemplo;
charstring[10]={exemplo};
charstring[10]={e,x,e,m,p,l,o,\0};

printf(%s,string);
printf(%c,string[0]);
Introduo Linguagem C
Lendo Strings
scanf:l o string at que um branco seja
encontrado
Ex: Sada:
main() Digiteseunome:Jose Maria
{ Bom dia Jose
charnome[40];

printf(Digiteseunome:);
scanf(%s,&nome[0]);
//scanf(%s,nome);
printf(Bomdia%c,nome[0]);
}
Introduo Linguagem C
Lendo Strings
Gets
lcaracteresatencontrar\n
substitui \n por \0
Ex:
main() Sada:
{ Digiteseunome:Jose Maria
Bom dia Jose Maria
charnome[40];

printf(Digiteseunome:);
gets(&nome[0]);//ougets(nome);
printf(Bomdia%s,nome);
} Introduo Linguagem C
Imprimindo Strings
printf
puts
Sada:
Ex: Digiteseunome:Jose Maria
main() Bomdia
{ Jose Maria
charnome[40];

printf(Digiteseunome:);
gets(&nome[0]);
puts(Bomdia);
puts(nome);
} Introduo Linguagem C
Funes de manipulao de
strings
Strlen
retorna o tamanho do string - no conta \0
Ex: Sada:
main() Digiteseunome:Jose Maria
{ Tamanho = 10
charnome[40];

printf(Digiteseunome:);
gets(&nome[0]);
printf(Tamanho=%d,strlen(&nome[0]));
}
Introduo Linguagem C
Funes de manipulao de
strings
strcat(str1,str2)
concatena str2 ao final de str1
Ex: Sada:
main() Maria
{ JoseMaria
char nome[40]=Jose, Cuidado:
charsobrenome[30]=Maria; dado str1 +
str2 tem que
strcat(nome,sobrenome); caber em str1
puts(sobrenome);
puts(nome);
}
Introduo Linguagem C
Funes de manipulao de
strings
strcmp(str1,str2)
comparadoisstringsretornando:

negativosestr1<str2
0sestr1=str2
positivosestr1>str2
acomparaofeitaporordem
alfabtica
Introduo Linguagem C
#include<stdio.h>
main()
{
char nome[40]=Jose;
char sobrenome[30]=Maria;

if(strcmp(nome,sobrenome)!=0)
puts(osstringssodiferentes);
else
puts(osstringssoidenticos);
}

You might also like