Professional Documents
Culture Documents
Programao
IntroduoLinguagemC
Prof.Dr.AdrianoCaminha
adriano@puvr.uff.br
Profa.Dra.VeraCaminha
veracaminha@puvr.uff.br
ICEx/UFF
VoltaRedondaRJ
19992011
IntroduoProgramaoIntroduoLinguagemC
Sumrio
ComandosCondicionaisAninhados........................................................ 03
SeleodeMltiplaEscolha.................................................................... 05
Exerccios.................................................................................................. 08
ComandodeRepetiofor....................................................................... 09
Exerccios.................................................................................................. 11
ContadoreseAcumuladores.................................................................... 12
ComandodeRepetiowhile.................................................................. 13
ComandodeRepetiodo...while.......................................................... 14
OperadorCondicionalouTernrio......................................................... 15
Exerccios.................................................................................................. 16
VetoresouArraysUnidimensionais....................................................... 16
InicializaodeVetores........................................................................... 17
Diretiva#define........................................................................................ 19
VetoresdeCaracteres.............................................................................. 21
FunesparaManipulaodeStrings................................................... 22
Exerccios.................................................................................................. 26
MatrizesBidimensionais......................................................................... 27
Exerccios.................................................................................................. 30
Downloaddaapostila:www.templojava.org(cadastreseevisiteApostilaseLivros)
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 2
IntroduoProgramaoIntroduoLinguagemC
ComandosCondicionaisAninhados
Sintaxe: if (condio 1) {
bloco de cdigo 1
} else if (condio 2){
bloco de cdigo 2
}
...
else if (condio n){
bloco de codigo n
}
else {
bloco de cdigo
}
Exemplo1:Lerumnmerointeiroemostrarsemenorque200,
maiorque500ouestentre200e500.
#include <stdio.h>
main()
{ int n;
printf("Inteiro: ");
scanf("%d", &n);
if (n < 200){
printf("Menor que 200.\n");
} else if (n > 500) {
printf("Maior que 500.\n");
} else {
printf("Entre 200 e 500.\n");
}
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 3
IntroduoProgramaoIntroduoLinguagemC
Exemplo2:Lertrsnmerosinteiroseimprimiromaiorvalorlido
(suponhanmerosdiferentes).
#include <stdio.h>
main()
{ int a, b, c;
printf("Entre com trs nmeros inteiros: ");
scanf("%d, %d, %d", &a, &b, &c);
if (a>b && a>c)
{ printf("Maior: %d.\n", a);
} else if (b>c) {
printf("Maior: %d.\n", b);
} else {
printf("Maior: %d.\n", c);
}
}
Exerccio27(ListadeExerccios1):LeramatrculaeasnotasV1
eV2deumaluno.Imprimaamatrcula,asnotaseamdiaaritmticado
alunoeumadasmensagens:
Aprovado,seamdiaformaiorque6.0;
Reprovadoseamdiaformenorque4.0;
FazerVScasocontrrio.
Exemplo3(leituradecaractereapsumvalornumrico):Ler
aidadeeosexodeumapessoaeimprimeaidadeeosexocasoapessoaseja
dosexomasculino.
#include <stdio.h>
main()
{ int idade;
char sexo;
printf("Idade: ");
scanf("%d", &idade);
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 4
IntroduoProgramaoIntroduoLinguagemC
if (sexo=='m' || sexo=='M'){
printf("%d - Sexo masculino.", idade);
} else if (sexo=='f' || sexo=='F'){
printf("Sexo feminino .\n");
}
}
SeleodeMltiplaEscolha
switchcaseumaestruturaquesimplificaoprogramanousode
deciso de mltiplos blocos quando a expresso de controle (condio)
envolvertiposintouchar.
Oresultadodaexpresso comparadoaovalor decada um dos
rtulosdecadacaseeoscomandossoexecutadosapartirdessertulo.
Sintaxe: switch(expresso)
{ case constante1:
bloco de cdigo 1;
break;
case constante2:
bloco de cdigo 2;
break;
...
case constanteN:
bloco de cdigo n;
break;
default:
bloco de cdigo;
break;
}
Onde:
expressodotipointouchar;
constante1,, constanteN soconstantes(variveisouvalores)
intouchar;
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 5
IntroduoProgramaoIntroduoLinguagemC
Exemplo1:Lerumnmerorealeexecutarumadasopesabaixo:
1Dobro;
2Metade;
3Quadrado.
Paraqualqueroutraopo,imprimirOpoinvlida.
#include <stdio.h>
#include <math.h> //compilar com gcc nome -lm
main()
{ int op;
float n;
printf("\nNmero real: ");
scanf("%f", &n);
printf("\n\n1 - Dobro.\n2 - Metade.\n3 -
Quadrado.\n\nOpo: ");
scanf("%d", &op);
switch (op)
{ case 1:
printf("\nDobro = %f.\n\n", n*2);
break;
case 2:
printf("\nMetade = %f.\n\n", n/2);
break;
case 3:
printf("\nQuadrado=%f.\n\n", pow(n,2));
break;
default:
printf("\nOpo invlida.\n\n");
}
}
Exerccio:Lerdoisinteirosemostrarasopes:
1Soma;
2Subtrao;
3Produto;
4Divisointeiro;
5Divisoreal;
6Restodadiviso;
Apsaseleodaopodesejada,imprimaoresultadonatela.Para
qualqueroutraopoimprimaOpoinvlida.
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 6
IntroduoProgramaoIntroduoLinguagemC
Exemplo2:Lerocdigodeumdeterminadoprodutoemostrarasua
classificao.Utilizaraseguintereferncia:
Cdigo Classificao
1 Alimentonoperecvel
2,3ou4 Alimentoperecvel
5ou6 Vesturio
7 Higienepessoal
8,9ou10 Limpezaeutensliosdomsticos
Qualqueroutrocdigo Invlido
#include <stdio.h>
#include <math.h>
main()
{ int op;
printf("\nEscolha o cdigo do produto: ");
scanf("%d", &op);
switch (op)
{ case 1:
printf("\nAlimento no perecvel.\n\n");
break;
case 2: //sem break = unio dos cases
case 3:
case 4:
printf("\nAlimento perecvel.\n\n");
break;
case 5:
case 6:
printf("\nVesturio.\n\n");
break;
case 7:
printf("\nHigine pessoal.\n\n");
break;
case 8:
case 9:
case 10:
printf("\nLimpeza e utenslios
domsticos.\n\n");
break;
default:
printf("\nOpo invlida.\n\n");
}
}
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 7
IntroduoProgramaoIntroduoLinguagemC
Exerccios
1EscrevaumprogramaqueleiatrsnmerosinteirosA,BeC,
calculeeimprimaovalordaseguinteexpresso:
D=(R+S)/2,ondeR=(a+b)^2eS=(B+C)^2
Apsaseleodaopo,imprimaoresultado.Paraqualqueroutra
opoimprimaamensagemOpoInvlida.
3Escrevaumprogramaqueleiaamdiadeumalunoeimprimao
valordeseuconceitosegundoatabelaabaixo:
Mdia Conceito
De0.04.9 D
De5.0a6.9 C
De7.0a8.9 B
De9.0a10.0 A
4EscrevaumprogramaqueleiaoraioRdeumaesferaecalculeo
volumeearea.
V=4/3*pi*r^3
A=4*pi*r^2
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 8
IntroduoProgramaoIntroduoLinguagemC
ComandodeRepetiofor
aestruturaderepetiomaissimpleseusadapararepetirum
ouvrioscomandosquantasvezesforemnecessrias.
a estrutura mais indicada quando o nmero de repeties for
conhecido.
Ocontroledonmeroderepetiesfeitoatravsdeumavarivel
contadora.
Onde:
inicializao uma expresso que contm o valor inicial da
varivelcontadoraesexecutadaumaveznoincio.
condio uma expresso lgica e/ou relacional de controle de
repetio.
bloco de cdigooconjuntodeinstruesaserexecutado.
Exemplo1:Imprimirosnmerosde0a100.
#include <stdio.h>
main()
{
int i; //varivel de controle (ndice do lao)
for(i=0; i<=100; i++) //crescente
{ printf("%d \t", i);
}
printf("\n");
}
Exemplo2:Imprimirosnmerosde100a0.
#include <stdio.h>
main()
{ int i;
for(i=100; i>=0; i--) //decrescente
{ printf("%d \t", i);
}
printf("\n");
}
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 9
IntroduoProgramaoIntroduoLinguagemC
Exemplo3:Imprimirosnmerosparesentre0e100,inclusive.
#include <stdio.h>
main()
{ int i;
for(i=0; i<=100; i+=2)
{ printf("%d \t", i);
}
printf("\n");
}
Exemplo4:Imprimirosnmerosmparesentre0e100,inclusive.
#include <stdio.h>
main()
{ int i;
for(i=1; i<=100; i+=2)
{ printf("%d \t", i);
}
printf("\n");
}
Exemplo5:Ler10nmerosinteiroseimprimirovalordodobrode
cadanmerocasoonmerosejapar.
#include <stdio.h>
main()
{ int i, n;
for(i=0; i<10; i++)
{ printf("Entre com um nmero: ");
scanf("%d", &n);
if(n%2==0){
printf("%d.\n",n*2);
} else {
printf("Impar.\n");
}
}
}
Exemplo6:Ler10nmerosreaiseparacadanmerotestar:seo
nmeroforpositivo,imprimiraraizquadrada,seno,imprimiroquadrado
donmero.
#include <stdio.h>
#include <math.h>
main()
{
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 10
IntroduoProgramaoIntroduoLinguagemC
int i;
float n;
for(i=0; i<10; i++)
{ printf("Entre com um nmero real: ");
scanf("%f", &n);
if(n>0){
printf("Raiz = %.2f.\n", sqrt(n));
} else if (n<0){
printf("Quadr = %.2f.\n", pow(n,2));
} else {
printf("Zero ;D\n");
}
}
}
Exerccios
Faaosexerccios3a24daLista2.
ProcurerevisarosseusalgoritmosemPortugolcorrespondentesa
estesexercciosetentereescrevlosemlinguagemC,esteo
processonormaldeescritadeumbomprograma.
Comeceescrevendoosprogramasnocaderno,sdepoispassepara
oseueditorparaentooscompilareexecutar,anotandonocaderno
ospossveiserrosecorrees.
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 11
IntroduoProgramaoIntroduoLinguagemC
ContadoreseAcumuladores
Exemplo1(contador):Ler10nmerosinteirosecontarquantos
paresforaminformados.
#include <stdio.h>
main()
{ int i, n, cont;
Exemplo2(acumulador):Mostrarasomadosinteirosde0a100.
#include <stdio.h>
main()
{ int i, soma;
ComandodeRepetiowhile
Onde:
condio uma expresso relacional e/ou lgica (o resultado
deverserverdadeirooufalso).
Exemplo1:(mostrarosinteirosde0a100)
#include <stdio.h>
main()
{ //inicializao da varivel de controle
int i = 0;
printf("\n\n");
}
Exemplo2:(mostrarosinteirosde100a0)
#include <stdio.h>
main()
{ //inicializao da varivel de controle
int i = 100;
while( i >= 0 )
{ printf("%d \t ", i);
i--; //muda o valor da varivel da condio
}
printf("\n\n");
}
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 13
IntroduoProgramaoIntroduoLinguagemC
ComandodeRepetiodo...while
Parecidocomorepita,doPortugol,ondeoblocoexecutado
pelomenosumavez,poistestaacondionofinal.
Executaoblocoumavezerepeteoblocoenquantoacondio
forverdadeira.
Exemplo1:Ler10nmerosreaiseimprimiroquadradodecadaum.
#include<stdio.h>
main()
{ int i=10; //inicializao
float n;
do
{ printf(\n Real: );
scanf(%f, &n);
printf(\t quadrado= %f, n*n);
i--; //muda a varivel de controle
} while ( i > 0 ); //verdadeiro = repete do
}
Exercicio:Leruminteiroemostrarasseguintesopes:
1dobro
2cubo
3raizquadrada
4sair
Usedo...whiletestandoseaoponoadesada.
Use switch...case emostrecadaresultadodeacordocomcada
opoatquesejaescolhidaaopodesair.
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 14
IntroduoProgramaoIntroduoLinguagemC
OperadorCondicionalouTernrio
Ooperadorternrio?usadoemexpressescondicionais.
Necessitadetrsoperandoseseuusopodersimplificarocomando
if...elsesimples.
Exemplo:
int a = 200, b = 100, c;
c = ( a > b ) ? a : b;
//a maior que b, ento c = 200
Exemplo1:Lerdoisinteiroseimprimiromenor.
#include <stdio.h>
main()
{ int a, b, c;
printf("\n\nInforme dois inteiros: ");
scanf("%d, %d", &a, &b);
c = ( a < b ) ? a : b;
Exemplo2:Lertrsinteiroseimprimiromenor.
#include <stdio.h>
main()
{ int a, b, c, d;
printf("Entre com trs nmeros inteiros: ");
scanf("%d, %d, %d", &a, &b, &c);
Exemplo3:Lerdoisinteiroseimprimiromenor.
#include <stdio.h>
main()
{ int a, b;
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 15
IntroduoProgramaoIntroduoLinguagemC
Exerccios
ProcurerevisarosseusalgoritmosemPortugolcorrespondentesa
estes exerccios e tente reescrevlos em linguagem C, este o
processonormaldeescritadeumbomprograma.
Comeceescrevendoosprogramasnocaderno,sdepoispassepara
oseueditorparaentooscompilareexecutar,anotandonocaderno
ospossveiserrosecorrees.
VetoresouArraysUnidimensionais
Declaraodeumvetor:
tipo nome[tamanho];
ndices 0 1 2 3 4 5 6 7 8 9
vetor
Exemplo: vetor[0] = 7;
...
vetor[9] = 3;
Exemplo1:Lereimprimirumvetorcom5inteiros.
#include <stdio.h>
main()
{ int vet[5], i; //declara vetor vet tamanho 5
printf("\n\nLeitura:\n");
for(i=0; i<5; i++)
{ printf("\nInforme o elemento %d: ", i);
scanf("%d", &vet[i]); //vet posio i
}
printf("\n\nImpressao:\n\n");
for(i=0; i<5; i++)
printf("%d\t", vet[i]);
printf("\n\n");
}
InicializaodeVetores
Osvetoresocupamespaonamemria.
Ainicializaopodeserfeitaatravsdeleituraouatribuiode
valores.
Exemplo:Declaraoseminicializao.
Exemplo:Declaraocominicializao,parapequenosvetores.
Exerccio:Oquefazoprogramaabaixo?
#include <stdio.h>
main()
{ int i, v[10];
printf("Elementos do vetor:\n\n");
for(i=0; i<10; i++)
printf("%d\t", v[i]);
printf("\n");
}
Resposta:Atribuizeroparatodasasposiesdovetoreoimprime.
#include <stdio.h>
main()
{ int i, x[10];
printf("\n\nLeitura:\n\n");
for(i=0; i<10; i++) //incrementando
{ printf("Digite um valor inteiro: ");
scanf("%d", &x[i]);
}
printf("\nInverso:\n");
for(i=9; i>=0; i--) //decrementando
printf("%d\t", x[i]); //apenas imprime invertido
//CUIDADO: desta forma NO gera um novo vetor!!
printf("\n\n");
}
#include <stdio.h>
main()
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 18
IntroduoProgramaoIntroduoLinguagemC
printf("\nLeitura:\n\n");
for(i=0; i<10; i++)
{ printf("\nElemento %d: ", i);
scanf("%d", &x[i]);
}
Exerccio:Lereimprimirumvetorcom10nmerosinteiros.Logo
aps,calculareimprimir:
Amdiaentreosvaloresdoselementosdovetor.
Aquantidadedepareseaquantidadedempares.
Diretiva#define
#include <stdio.h>
#define MAX 10 //tamanho dos vetores
main()
{ int i, a[MAX], b[MAX], soma[MAX], dif[MAX];
printf("\n\nLeitura:");
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 19
IntroduoProgramaoIntroduoLinguagemC
//impresses
printf("\n\nVetor a: ");
for(i=0; i<MAX; i++)
printf("%d\t", a[i]);
printf("\nVetor b: ");
for(i=0; i<MAX; i++)
printf("%d\t", b[i]);
printf("\n\n\n");
}
Exerccio:Lereimprimirdoisvetoresdeinteirosdemesmotamanho
(use #define paracriaraconstantecomotamanho).Logoaps,gerare
imprimir:
Ovetorprodutoentreosvetoreslidos;
Ovalordoprodutointernoentreeles;
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 20
IntroduoProgramaoIntroduoLinguagemC
VetoresdeCaracteres
Estadeclaraocriaumavarivelnomecomoumastringouvetor
de caracteres, permitindo um comprimento de 79 caracteres, mais o
caracteredefimdestring\0.
nome
\0
0 1 2 ... 78 79
Altimaposiodeveserreservadaparaocaractere\0,ento,s
possvel utilizar 4 caracteres na string acima, ou seja, tamanho 1
caracteres.
Est errado atribuir 5 caracteres a um vetor de caracteres de
tamanho5(nosedeveesqueceroespaoparacaracteredefimdestring).
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 21
IntroduoProgramaoIntroduoLinguagemC
FunesparaManipulaodeStrings
1gets(bibliotecastdio.h)
Lumastringviateclado.
Estecomandogeraumawarning(aviso),ignoreoaviso.
Sintaxe: gets(nome_vetor);
Exemplo:
#include <stdio.h>
main()
{ char nome[50];
printf("\nSeu nome: ");
gets(nome); //%s para strings
printf("\n\nOl, %s !\n\n",nome);
//%s para strings
}
2strcpy(biblioteca:string.h)
Copiaastringorigemparaastringdestino.
Exemplo:
#include <stdio.h>
#include <string.h>
main()
{ char s1[100], s2[100], s3[100];
printf("\nInforme uma string qualquer: ");
gets(s1);
//copiar o valor de s1 para s2
strcpy(s2, s1);
//copiar texto entre aspas para s3
strcpy(s3,"string informada: ");
//mostrar
printf("\n\n%s %s\n\n",s3 ,s2);
}
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 22
IntroduoProgramaoIntroduoLinguagemC
3strcat (bibliotecastring.h)
Concatenaduasstrings.
Astringorigemficarinalteradaeseranexadaaofinalda
stringdestino.
Mascuidado,otamanhodastringdestinotemquesersuficiente
paraconterastringresultadodaconcatenao.
Exemplo:(fonte:www.cplusplus.com)
#include <stdio.h>
#include <string.h>
main()
{ char s1[100], s2[100];
printf("\nInforme uma string: ");
gets(s1);
strcpy(s2,"string informada: ");
strcat(s2, s1); //concatena
printf("\n\n%s\n\n", s2);
}
4strlen (biblioteca:string.h)
Retornaotamanhodastringfornecida,semcontarocaractere
\0.
Sintaxe:int nomeVar = strlen(string_nome);
Exemplo:
#include <stdio.h>
#include <string.h>
main()
{ char s1[100];
int tam;
printf("\nInforme uma string qualquer: ");
gets(s1);
tam = strlen(s1);
//mostrar
printf("\n\nA string \"%s\" tem %d caracteres.\n\n", s1,
tam);
}
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 23
IntroduoProgramaoIntroduoLinguagemC
5strcmp(bibliotecastring.h)
Compara duas strings. Se as duas forem idnticas, a funo
retorna0(zero),seforemdiferentes,afunoretornaumvalordiferentede
zero.
Exemplo:
#include <stdio.h>
#include <string.h>
main()
{ char s1[100], s2[100];
printf("\nInforme uma string: ");
gets(s1);
gets(s2);
//comparando
if( strcmp(s1, s2) ) //se iguais 0(executa o else)
printf("\nDiferentes.\n");
else
printf("\nIguais.\n");
}
6toupper(biblioteca:ctype.h)
Retornaocaractereconvertidoparamaisculo.
Exemplo:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
main()
{ char s[100];
int i, tam;
printf("\nInforme uma string qualquer: ");
gets(s);
tam = strlen(s);
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 24
IntroduoProgramaoIntroduoLinguagemC
//maiusculas
for(i=0; i<tam; i++)
s[i] = toupper(s[i]); //um por um
//mostrar
printf("\n\n%s\n\n", s);
}
ExerccioResolvido:Escrevaumprogramaqueexecuteas
seguintesaes,naordemabaixo:
Lerduasstringsdenomximo10caracteres,
Mostrarotamanhodecadauma,
Copiaraprimeiraparaumaterceirastringeimprimirestaterceira,
Compararasduaslidasemostrarumamensagem"iguais"ou
"diferentes",
Concatenarasegundalidaparaaterceirastringemostrar,
Converteraterceirastringparamaisculasemostrar.
Soluo:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
main()
{ char s1[0], s2[10], s3[20];
int i, tam1, tam2, tam3;
//leitura
printf("\nInforme uma string qualquer: ");
gets(s1);
printf("\nInforme outra string qualquer: ");
gets(s2);
//tamanhos
tam1 = strlen(s1);
tam2 = strlen(s2);
//mostrar tamanhos
printf("\n\n%s = %d caracteres", s1, tam1);
printf("\n%s = %d caracteres", s2, tam2);
//mostrar copiada
printf("\ns3 (copiada) = %s", s3);
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 25
IntroduoProgramaoIntroduoLinguagemC
//comparar
if( strcmp(s1, s2) ) //iguais 0 else
printf("\ns1 e s2 so diferentes.");
else
printf("\ns1 e s2 so iguais.");
//mostrar concatenada
printf("\ns3 (concatenada) = %s", s3);
//maiusculas
tam3 = strlen(s3);
for(i=0; i<tam3; i++)
s3[i] = toupper(s3[i]);
//mostrar maiusculas
printf("\nMaisculas: %s\n\n", s3);
}
Exerccios
Faaosexerccios35a40daLista2.
ProcurerevisarosseusalgoritmosemPortugolcorrespondentesa
estesexercciosetentereescrevlosemlinguagemC,esteo
processonormaldeescritadeumbomprograma.
Comeceescrevendoosprogramasnocaderno,sdepoispassepara
oseueditorparaentooscompilareexecutar,anotandonocaderno
ospossveiserrosecorrees.
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 26
IntroduoProgramaoIntroduoLinguagemC
MatrizesBidimensionais
Umamatrizumvetorcujoselementossooutrosvetores.
Sintaxe:
Exemplos:
int matriz[5][4]; //5 lin, 4 col
int a[5][3]; //5 lin, 3 col
float b[3][5]; //3 lin, 5 col
ExemplocomEsbooGrfico:
int m[4][5]; //4 lin, 5 col
m 0 1 2 3 4
0
1
2
3
Exemplo1:Lereimprimirumamatrizdeinteiros3x3.
#include <stdio.h>
main()
{ int a[3][3], l, c;
//leitura
for(l=0; l<3; l++) //linhas
for(c=0; c<3; c++) //colunas
{ printf("\n[%d][%d]:", l, c);
scanf("%d",&a[l][c]);
}
//impresso
printf("\n\nMatriz lida: \n\n");
for(l=0; l<3; l++)
{ for(c=0; c<3; c++)
{ printf("\t%d", a[l][c]);
}
printf("\n"); //prox linha da matriz
}
printf("\n\n");
}
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 27
IntroduoProgramaoIntroduoLinguagemC
ExerccioResolvido1:Escrevaumprogramaqueleiaeimprima
umamatriz3x4.Logoaps,gereamatrizdobro.Nofinal,imprimaamatriz
dobro.
Soluo:
#include <stdio.h>
main()
{ int a[3][4], dobro[3][4], l, c;
//leitura
for(l=0; l<3; l++)
for(c=0; c<4; c++)
{ printf("\n[%d][%d]:", l, c);
scanf("%d", &a[l][c]);
}
//impresso
printf("\n\nMatriz lida: \n\n");
for(l=0; l<3; l++)
{ for(c=0; c<4; c++)
printf("\t%d", a[l][c]);
printf("\n"); //prox linha da matriz
}
printf("\n\n");
}
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 28
IntroduoProgramaoIntroduoLinguagemC
ExercicioResolvido2:Lereimprimirduasmatrizes3x2.Calcular
eimprimiramatrizsoma.
Soluo:
#include <stdio.h>
main()
{ int a[3][2], b[3][2], soma[3][2], l, c;
//leitura
for(l=0; l<3; l++)
for(c=0; c<2; c++)
{ printf("\na[%d][%d]:", l, c);
scanf("%d", &a[l][c]);
}
for(l=0; l<3; l++)
for(c=0; c<2; c++)
{ printf("\nb[%d][%d]:", l, c);
scanf("%d", &b[l][c]);
}
//impresso
printf("\n\nMatriz A: \n\n");
for(l=0; l<3; l++)
{ for(c=0; c<2; c++)
printf("\t%d", a[l][c]);
printf("\n"); //prox linha da matriz
}
printf("\n\nMatriz B: \n\n");
for(l=0; l<3; l++)
{ for(c=0; c<2; c++)
printf("\t%d", b[l][c]);
printf("\n"); //prox linha da matriz
}
Exerccio1:Lereimprimirumamatriz4x4deinteiros.Logoaps,
imprimir:
Oselementosdadiagonalprincipal
Oselementosacimadadiagonalprincipal
Oselementosabaixodadiagonalprincipal
Exerccio3:Leiaduasmatrizesdeinteiros4x4.Calculea matriz
produto,seguindoasregrasmatemticas,emostreastrsmatrizes.
Exerccios
FaaosexercciosdaLista3.
ProcurerevisarosseusalgoritmosemPortugolcorrespondentesa
estesexercciosetentereescrevlosemlinguagemC,esteo
processonormaldeescritadeumbomprograma.
Comeceescrevendoosprogramasnocaderno,sdepoispassepara
oseueditorparaentooscompilareexecutar,anotandonocaderno
ospossveiserrosecorrees.
19992011Prof.Dr.AdrianoCaminhaeProfa.Dra.VeraLciaPrudnciadosSantosCaminhaICEx/UFFVoltaRedondaRJ 30