Buscar

Logica Programacao Aula 5

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

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

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ê viu 3, do total de 75 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

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

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ê viu 6, do total de 75 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

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

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ê viu 9, do total de 75 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

Prévia do material em texto

INTRODUÇÃO A LINGUAGEM C
Prof Carlos Lahoz
Extraido do material do Prof. Valdir Gil Pillat
ROTEIRO
 História
 Conceitos Básicos
 Bibliotecas
 Tipos de variáveis
 Comandos de entrada
 Comandos de saída
 Operadores (Aritméticos, Relacionais e Lógicos)
 Funções
 Estrutura condicional
 Estrutura de repetição
HISTÓRIA
 Entre 1969 e 1973, 
Dennis Ritchie 
inventou a 
linguagem C e foi o 
primeiro a 
implementá-la 
usando um 
computador DEC 
PDP-11, que 
utilizava o sistema 
operacional Unix.
LINGUAGEM B
 Essa linguagem é resultante de um processo 
evolutivo de linguagens. O marco inicial foi uma 
linguagem chamada BCPL, desenvolvida por 
Martin Richards, que teve forte influência em 
uma linguagem denominada B, inventada por 
Ken Thompson. Na década de 1970, B levou 
ao desenvolvimento de C.
PADRÃO C
 C K&R: Em 1978, Ritchie e Kernighan publicaram 
a primeira edição do livro The C Programming 
Language.
 C ANSI: Em 1983, “American National Standards 
Institute” – ANSI, estabeleceu um comitê para 
definir um padrão que guiasse todas as 
implementações da linguagem C.
 ISO/IEC 9899:1990: Em 1990, o padrão C ANSI 
foi adotado pela Organização Internacional de 
Padrões (ISO).
C++
 É uma extensão da linguagem C. As instruções 
que fazem parte desta última representam um 
subconjunto da primeira. 
 Os incrementos encontrados na linguagem C++ 
foram feitos para dar suporte à programação 
orientada a objetos. 
 A sintaxe desta linguagem é basicamente a 
mesma da linguagem C.
ESTRUTURA DE UM PROGRAMA C
//Inclusão das bibliotecas
//Declaração de variáveis globais - opcional
//Declaração de funções - opcional
int main() //estrutura principal do programa dentro 
das suas chaves são chamadas todas as funções 
e variáveis utilizada no programa.
{
//declaração de variáveis
//código
}
OUTROS CONCEITOS INTERESSANTES
 { - indica início de um bloco de nível
 } – indica fim de um bloco de nível
 // - comentar uma linha
 /* - início do comentário de múltiplas linhas
 */ - final do comentário de múltiplas linhas
 ; - necessário no final de toda linha que 
represente: instrução, atribuição e declaração.
BIBLIOTECAS MAIS UTILIZADAS
 stdio.h – contem os comandos básicos de entrada e 
saída do programa
 stdlib.h – contem os comandos básicos da linguagem C
 conio.h – geralmente é utilizada em programas básicos 
para utilizar a função “getch();” utilizado para colocar o 
programa em modo de espera da próxima ação do 
usuário, muito útil para visualizar os resultados de um 
programa.
 math.h – contem os comandos matemáticos mais 
avançados, por exemplo, cálculo de potências, 
pow(número, potência). 
INSERIR BIBLIOTECA
//Inclusão das bibliotecas
#include <stdio.h>
#include <conio.h>
//Declaração de variáveis globais - opcional
//Declaração de funções - opcional
int main() //estrutura principal do programa dentro das suas 
chaves são chamadas todas as funções e variáveis utilizada no 
programa.
{
//declaração de variáveis
//código
}
DECLARAÇÃO DOS PRINCIPAIS TIPOS DE VARIÁVEIS
 int – para variáveis numéricas (números inteiros). Ex.: int
a,b,c;
 float – para variáveis numéricas (números flutuantes, ou 
seja, com casas decimais). Ex.: float a,b,c; 
 double – para variáveis numéricas (números flutuantes, 
ou seja, com casas decimais), com uma precisão maior 
que o float. Ex.: double a,b,c;
 char – para variáveis do tipo caractere. Ex.: char nome; 
TIPOS DE VARIÁVEIS
Tipo Faixa de valores Tamanho(aproximado)
char -128 a 127 8 bits
unsigned char 0 a 255 8 bits
int -32.768 a 32767 16 bits
unsigned int 0 a 65.535 16 bits
short int -32.768 a 32767 16 bits
long -2.147.483.648 a 2.147.483.647 32 bits
unsigned long 0 a 4.294.967.295 32 bits
float 3.4 x 10-38 a 3.4 x 1038 32 bits
double 1.7 x 10-308 a 1.7 x 10308 64 bits
long double 3.4 x 10-4932 a 1.1 x 104932 80 bits
COMANDOS DE ENTRADA
 O comando de entrada é utilizado para receber dados 
digitados pelo usuário. Os dados recebidos são armazenados 
em variáveis. Os comandos de entrada mais utilizados na 
linguagem C são gets e scanf
 A principal diferença é que scanf lê dados formatados, e gets 
lê dados não formatados. Mas leia a documentação das duas 
funções para conhecer melhor as particularidades de cada 
uma delas. 
COMANDOS DE ENTRADA
 A função scanf( ) é uma das funções de entrada de dados da 
Linguagem C, que pode ser usada para ler virtualmente 
qualquer tipo de dado inserido por meio do teclado,
 Freqüentemente ela é usada para a entrada de números 
inteiros ou de ponto flutuante. A forma geral da função 
scanf( ) é: scanf (“string de controle”, lista de argumentos);
 A função getch() lê o caracter do teclado mas não imprime o 
caracter lido na tela. Esta função não aceita argumentos e 
devolve o caracter lido para a função que a chamou.
COMANDOS DE ENTRADA
Os especificadores de formato de entrada são precedidos por 
um sinal % e dizem à função scanf( ) qual tipo de dado deve ser 
lido em seguida. Esses códigos são listados na abaixo.
COMANDOS DE ENTRADA
OBS: O operador & - "endereço de resulta sempre o endereço 
de memória do objeto em questão (em geral o local onde uma 
variável está alocada na memória). Ou seja, ele cria um 
ponteiro.
Essa é a forma do C para passar um argumento para uma 
função. Em C essa passagem sempre tem que ser explícita, já 
que todas passagens se dão por valor (em geral as linguagens 
são assim, mas algumas escondem isso e parece que estão 
passando por referência).
No caso específico o scanf() espera justamente um endereço 
onde ele deve armazenar o que for digitado pelo usuário. Por 
isso está sendo passado com este operador.
COMANDOS DE ENTRADA
OBS: O operador & 
Para esta função não interessa o valor guardado na variável e 
sim onde ela está.
Um erro comum é o programador inexperiente usar este 
operador em uma variável que é é um ponteiro. Aí não precisa, 
porque a variável já contém o endereço do objeto apontado. O 
O operador oposto é o * que é pegar o valor apontado pelo 
endereço.
COMANDOS DE ENTRADA
Copiar o programa abaixo para o ambiente Dev C++, analisar a 
sua sequência lógica e analisar o seu funcionamento, 
compilando e executando.
Cálculo do Peso Ideal.
COMANDOS DE ENTRADA
//Programa determina o "peso ideal" de uma pessoa a partir da sua altura.
//Trata-se apenas de um exemplo - não segue nenhuma orientação médica.
#include <stdio.h> //biblioteca com funções de E/S
#include <stdlib.h> // biblioteca com funções de SO
main( ) //Início do programa em C
{
int altura; //Declara uma variável para altura */
int peso; //Declara uma variável para peso
printf("Altura em centimetros (entre 120 e 200):"); //Mostra na tela a 
mensagem para entrar com um valor de "altura“
scanf("%d",&altura); //Função que espera um valor pelo teclado
peso = (altura-119)*5/8+45; //Calcula o peso considerando a altura proposta
printf("Peso ideal: %d \n",peso); //Mostra na tela o Peso Ideal da pessoa
system("PAUSE"); //Função de Pausa do sistema operacional
} //Fim do programa em C
COMANDOS DE ENTRADA
Entrada de Dados
//Este Programa mostra como entrar com dados pelo teclado
#include <stdio.h> //biblioteca com funções de Entrada e Saída
#include <stdlib.h> // biblioteca com funções de sistema Operacional
main( ) //Início do programa em C
{
char n1, n2, n3; //Declarar variáveis do tipo caracter
scanf ("%c", &n1); //Aguarda da entrada de um valor pelo teclado
scanf ("%c", &n2); //Aguarda da entrada de um valor pelo teclado
scanf ("%c",&n3); //Aguarda da entrada de um valor pelo teclado
printf ("%c %c %c\n", n1, n2, n3); //Mostra na tela os velores das variáveis
system("PAUSE"); //Função de Pausa do sistema operacional
} //Fim do programa em C
EXEMPLO
gets(a);
scanf(“%t”, &a); 
Nota: este comando busca o endereço da variável por isto é 
necessário inserir o símbolo “&”.
Obs.: para os comandos de entrada e saída são utilizadas as 
variáveis %t, sendo que "t" pode ser:
 inteiro: %d ou %i
 float: %f 
 double: %d
 char: %c ou %s para uma cadeia de caracteres
 Outros caracteres especificadores estão disponíveis em: 
http://www.cplusplus.com/reference/cstdio/printf/
COMANDOS DE SAÍDA
O comando de saída é utilizado para mostrar dados na tela ou na 
impressora. Os comando de saída mais utilizado é o printf.
Exemplo 
printf(“Texto para o usuário %t”, a);
Comandos utilizados na saída.
\t - insere uma tabulação
\n - insere uma quebra de linha
%X.Yf – limita o número de casas decimais, onde “X” é o número 
de espaços antes do separador decimal e “Y” é o número de 
espaços depois do separador decimal. Por exemplo, 
printf(“%5.2f”,num); // Saída: ___20.00 (“_” representa 
espaço)
COMANDOS DE SAÍDA
Por exemplo, vamos escrever um programa em C que pede um 
número ao usuário e o mostra na tela.
#include <stdio.h>
int main()
{
int numero;
printf("Digite um numero: ");
scanf("%d", &numero);
printf("O numero digitado foi: %d", numero);
}
COMANDOS DE SAÍDA
Escreva um programa em C que peça dois números inteiros e 
mostre sua soma. 
Primeiro crie três variáveis inteiras: num1, num2 e resultado. 
Essas variáveis que vão armazenar os números que o usuário 
fornecer e o resultado da soma. 
Após isso, use a função scanf() para pegar do usuário os dois 
número. 
Em seguida, armazenamos a soma desses números na variável 
'resultado', e exibimos essa variável num printf.
COMANDOS DE SAÍDA
Programa em C que peça dois números inteiros e mostre sua soma
#include <stdio.h>
int main()
{
int num1, num2, resultado;
printf("Digite um numero: ");
scanf("%d", &num1);
printf("Digite outro numero: ");
scanf("%d", &num2);
resultado = num1 + num2;
printf("%d + %d = %d", num1,num2,resultado);
}
COMANDOS DE SAÍDA
Recebendo mais de um número dentro de uma única scanf
Para evitar o trabalho de ter que escrever a scanf cada vez que 
você deseje receber um número do usuário, você pode colocar 
mais de um %d dentro do escopo da scanf.
COMANDOS DE SAÍDA
Recebendo mais de um número dentro de uma única scanf
#include <stdio.h>
int main()
{
int num1, num2;
printf("Insira dois numeros: ");
scanf("%d %d", &num1, &num2);
printf("Você digitou: '%d' e '%d'", num1, num2);
}
COMANDOS DE SAÍDA
No caso acima, num1 vai ser o número que você digitou antes de 
dar enter, espaço ou tab.
E num2 sera o número que você digitou após dar enter, espaço ou 
tab
Exercício: Faça um programa que peça dois inteiros ao usuário e 
que mostre a diferença (subtração) entre o primeiro e segundo 
número.
COMANDOS DE SAÍDA
Recebendo números reais ou decimais com a função scanf
Para receber números do tipo float ou double, faz-se exatamente 
como na seção anterior, sobre inteiros, somente com uma 
diferença que talvez você já saiba qual é: usamos %f ao invés de 
%d.
Exemplo: Crie um programa em C que peça dois números decimais 
ao usuário e mostre o produto deles, com precisão de dois 
números.
Lembrando que o símbolo de multiplicação é o asterisco, *:
COMANDOS DE SAÍDA
#include <stdio.h>
int main()
{
float num1, num2, resultado;
printf("Digite um numero: ");
scanf("%f", &num1);
printf("Digite outro numero: ");
scanf("%f", &num2);
resultado = num1 * num2;
printf("%.1f + %.1f = %.2f", num1,num2,resultado);
}
COMANDOS DE SAÍDA
Opções de impressão
Escape Sequence Description 
\n Newline. Position the screen cursor to the 
beginning of the next line. 
\t Horizontal tab. Move the screen cursor to the next 
tab stop. 
\r Carriage return. Position the screen cursor to the 
beginning of the current line; do not advance to the 
next line. 
\a Alert. Sound the system bell. 
\\ Backslash. Used to print a backslash character. 
\" Double quote. Used to print a double quote 
character. 
 
Algortimo “Exemplo_VisualG_C”
Var
a,b,s:real
inicio
escreval(“Entre com o valor da variável a”)
leia(a) 
escreval(“Entre com o valor da variável b”)
leia(b)
S<-a+b
escreval(“Soma a + b = %f ”,s)
}
#include <stdio.h>
int main(){ 
float a,b,s;
printf(“Entre com o valor da variável a\n”);
scanf(“%f”,&a); 
printf(“Entre com o valor da variável b\n”);
scanf(“%f”,&b);
s=a+b;
printf(“Soma a + b = %f \n”,s);
}
OPERADOR LÓGICO
Operador Exemplo Comentário
&& x>5 && x<10 E
|| x>5 || x<10 Ou
! !(x>5 || x<10) Não (negação)
OPERADOR ARITMÉTICO
Operador Exemplo Comentário
= x = y O conteúdo da variável y é atribuído à variável x. (Poder ser
atribuído a uma variável o conteúdo de outra variável, uma
constate, ou ainda o resultado de uma função.
+
-
x+y
x-y
Soma o conteúdo de x e y
Subtrai o conteúdo de x e y.
* x*y Multiplica o conteúdo de x pelo conteúdo de y
/ x/y Obtém o quociente da divisão de x por y.
% x%y Obtém o resto da divisão de x por y. (só pode ser utilizado
com parâmetros do tipo inteiro.
+= x+=y Equivale a x=x+y
-= x-=y Equivale a x=x-y
*= x*=y Equivale a x=x*y
/= x/=y Equivale a x=x/y
%= x%=y Equivale a x=x%y
++ x++ Equivale a x=x+1
++ y=++x Equivale a x=x+1 e depois y=x
++ y=x++ Equivale a y=x e depois x=x+1
-- x-- Equivale a x=x-1
-- y=--x Equivale a x=x-1 e depois y=x
-- y=x-- Equivale a y=x e depois x=x-1
OPERADOR RELACIONAL
Operador Exemplo Comentário
== x==y O conteúdo de x é igual ao conteúdo de y.
!= x!=y O conteúdo de x é diferente ao conteúdo de y.
<= x<=y O conteúdo de x é menor ou igual ao conteúdo
de y.
>= x>=y O conteúdo de x é maior ou igual ao conteúdo de
y.
< x<y O conteúdo de x é menor que o conteúdo de y.
> x>y O conteúdo de x é maior que o conteúdo de y.
FUNÇÕES MATEMÁTICAS
Função Exemplo Comentário
abs abs(x) Obtém o valor absoluto de x.
ceil ceil(x) Arredonda um número real para cima. Por exemplo,
ceil(3.2) é 4.
cos cos(x) Calcula o cosseno de x (x de estar representado em
radiano).
exp exp(x) Obtém o logaritmo natural e elevado à potência X.
floor floor(x) Arredonda um número real para baixo. Por
exemplo, floor(3.2) é 3.
log log(x) Obtém o logaritmo natural de x.
log10 log10(x) Obtém o logaritmo de base 10 de x.
M_PI M_PI Retorna o valor de π
modf z=modf(x,&y) Decompõe o número armazenado em x em duas
partes: y recebe a parte fracionária e z, a parte
inteira do número.
pow pow(x,y) Calcula a potência de x elevado y.
sin sin(x) Calcula o seno de x (x de estar representado em
radiano).
sqrt sqrt(x) Calcula a raiz quadrada de x.
tan tan(x) Calcula a tangente de x (x de estar representado em
radiano).
AÇÃO DO INCREMENTO E SUA EXIBIÇÃO
//Este programa mostra a ação do comando incremento e exibe o resultado
#include <stdio.h> //biblioteca com funções de E/S
#include <stdlib.h> // biblioteca com funções de SO
main( ) //Início do programa em C
{
int x=0; //Declaração de uma variável e atribuição de valor
printf ("Comando (x++) incrementa a variavel depois de mostrar na tela: x= 
%d\n",x++); //Mostra o valor da variável e executa o incremento
printf("Proximo valor da variavel: x= %d\n",x); //Mostra o valor da variável
printf("Comando (++x) incrementa antes de mostrar na tela: x= %d\n",++x); 
//Incrementa o valor da variável e mostra o valor
printf("Proximo valor da variavel: x= %d\n",x);//Mostra o valor da variável
system("PAUSE");
}
ESTRUTURA CONDICIONAL (SELEÇÃO OU DECISÃO)
 As estruturas condicionais são utilizadas 
quando existe a necessidade de verificar 
condições para a realização de uma instrução 
ou de uma sequência de instruções. Essas 
estruturas podem ser simples ou composta 
para transformar o exemplo abaixo em uma 
estrutura condicional simples remova a 
instrução else.
EXEMPLO IF
if (nota<5)
{
printf(“Aluno Reprovado”);
}
else
{
printf(“Aluno Aprovado”);
}
Desvio condicional simples
Fluxograma Em Visualg Linguagem C
se (condição) entao
Ações para 
condição verdadeira
fimse
if (condição) 
{
Ações para condição
verdadeira
}
Condição
Ações para 
condição 
verdadeira
NÃO SIM
Desvio condicional simples
Fluxograma Em Visualg Linguagem C
se (condição) faca
Ações para condição
verdadeira
senao
Ações para condição
falsa
fimse
if (condição) 
{
Ações para condição
verdadeira
}
else
{
Ações para condição
falsa
}
Condição
Ações para 
condição falsa
Ações para 
condição
Verdadeira
NÃO SIM
EXEMPLO SWITCH
#include <stdio.h>
#include <string.h>
int main()
{
char TITULO[8];
int op;
printf ("DIGITE A OPÇÃO");
scanf("%i",&op);
switch (op){
case 1:
strcpy(TITULO,"OPÇÃO 1");break;
case 2:
strcpy(TITULO,"OPÇÃO 2"); break;
case 3:
strcpy(TITULO,"OPÇÃO 3"); break;
case 4:
strcpy(TITULO,"OPÇÃO 4"); break;
case 5:
strcpy(TITULO,"OPÇÃO 5"); break;
default:
strcpy(TITULO,"OPÇÃO ERRADA");
}
printf("%s",TITULO);
getch();
}
Estrutura de seleção múltipla
Fluxograma Em Visualg Linguagem C
escolha (variável)
caso (valor1) 
instruções
caso (valor2)
instruções
...
caso (valor n) 
instruções
outrocaso
instruções
fimescolha
switch(variável)
{
case (valor 1): instruções; 
break;
case (valor 2): instruções; 
break;
...
case (valor n): instruções; 
break;
default: instruções; 
break;
}
Caso 1
Processamento
 caso 01
Caso 2
Caso n
Processamento
 caso 02
Processamento
 caso n
Processamento
 outrocaso
ESTRUTURAS DE REPETIÇÃO
 Uma estrutura de repetição é utilizada quando 
um trecho do algoritmo ou até mesmo o 
algoritmo inteiro precisa ser repetido. O 
número de repetições pode ser fixo ou estar 
atrelado a uma condição. Assim, existem 
estruturas para tais situações, descritas a 
seguir
FOR
for(i=0;i<=100;i=i+1)
{
printf(“Mostre o numero %i”, i);
}
FOR
//Este programa mostra a ação do laço "FOR“
#include <stdio.h> //biblioteca com funções de E/S
#include <stdlib.h> // biblioteca com funções de SO
define N 10 //Declaração de uma constante
main( ) //Início do programa em C
{
int s,i; //Declaração de uma variável
s = 0; //Atribui um valor a uma variável
for(i=1; i <= N; ++i) s+=i; //Declaração de um laço "FOR
//inIcia variavel "i"; verifica a condição final "i>N" ; dá sequência "++i")
// A a expressão (s+=i) é igual a (s=s+i)
printf("A soma de 1 a %d eh %d\n",N,s); //Mostra o resultado do laço
system("PAUSE"); //Função de Pausa do sistema operacional
} //Fim do programa em C
Laço de repetição incondicional 
Fluxograma Em Visualg Linguagem C
Para variável de inicio até fim
passo incremento faca 
Instruções executadas durante o 
ciclo da contagem da variável de 
controle
Fim_para
for (variável ; teste ; 
alteração)
{
}
Instruções executadas 
durante o ciclo da 
contagem da variavel 
de controle
Variável ← inicio, teste, incremento
DO
do
{
if (n>m)
{
m=n;
}
}while(n!=0);
Laço de repetição condicional pós-teste
Fluxograma Em Visualg Linguagem C
repita
Instruções executadas 
em
que a condição 
permanece 
falsa
até (condição)
do
{
Instruções executadas em
que a condição permanece 
verdadeira
}
while (condição)
Condição
Instruções executadas 
em que a condição 
permanece falsa
F
V
WHILE
while(n!=0)
{
if (n>m)
{
m=n;
}
}
Laço de repetição condicional pré-teste
Fluxograma Em Visualg Linguagem C
enquanto (condição) faca
Instruções executadas 
em que a condição 
permanece verdadeira
fimenquanto
while (condição)
{
Instruções executadas 
em que a condição 
permanece verdadeira
}
Condição
Instruções executadas 
em que a condição 
permanece verdadeira
SIM
NÃO
BIBLIOGRAFIA
 Ascencio, Ana Fernanda Gomes; de Campos, Edilene
Aparecida Veneruchi. Fundamentos da programação de 
computadores: Algoritmos, Pascal, C/C++, e Java, 2 ed., 
Pearson, 2007
 Barros, A.M.S. ANSI C para quem tem pressa. 2003. 
Disponível em: 
http://www.dei.isep.ipp.pt/~abarros/docs/ANSI_C.pdf 
Acessado em: 06/08/2012.
 Huss, E. The C Library Reference Guide, 1997. Disponível 
em: http://www.acm.uiuc.edu/webmonkeys/book/c_guide/ 
Acessado em: 06/08/2012.
 Puga, S.; Rissetti, G. Lógica de programação e estruturas de 
dados com aplicações em Java, 2 ed, Pearson, 2009.
INTRODUÇÃO A LINGUAGEM C (CONT)
ROTEIRO
 Vetores
 Matrizes
 Trabalhando c/ Textos
VETOR
 Também é conhecido como variável 
composta homogênea unidimensional. 
 Isto quer dizer que se trata de um conjunto 
de variáveis de mesmo tipo, que possuem o 
mesmo identificador (nome) e são alocadas 
sequencialmente na memória. 
 Como as variáveis têm o mesmo nome, o 
que as distingue é um índice que referencia 
sua localização.
INFORMAÇÕES
 Declaração
int vetorexemplo[9];
 Atribuição
vetorexemplo[0]=10; //atribui o valor 10 para a posição 0 do 
vetor
vetorexemplo[1]=2; //atribui o valor 2 para a posição 1 do 
vetor
scanf(“%i”,&vetorexemplo[2]); //guarda valor na posição 2 do 
vetor
 Saída
printf(“O valor do vetor na posição %i eh %i”, i, vetorexemplo[i]); 
//Valores do vetorexemplo: 10,2,5,0,0,0,0,0,0.
EXEMPLO
 Faça um programa que leia 10 valores inteiros e imprima quais são pares e qual é a posição 
dele no vetor.
#include<stdio.h>
int main()
{
int V[10],i=0;
while (i<10)
{
printf("Entre com um numero\n");
scanf("%i",&V[i]);
i++;
}
//Verifica quais valores no vetor são pares
for(i=0;i<10;i++)
{
if(V[i]%2==0)
{
printf("Na posicao %i o valor %i eh par\n",i, V[i]);
}
}
}
EXERCÍCIO
 Faça um programa que leia e armazene um 
vetor de 10 valores e calcule a soma de todos 
esses valores. No final imprima o resultado.
MATRIZ
 É uma variável composta homogênea
multidimensional.
 Ela é formada por uma sequência de variáveis,
todas do mesmo tipo, com o mesmo identificador
(mesmo nome), e alocadas sequencialmente na
memória. Uma vez que as variáveis têm o mesmo
nome, o que as distingue são índices que
referenciam sua localização dentro da estrutura.
 Uma variável do tipo matriz precisa de um índice
para cada uma de suas dimensões.
INFORMAÇÕES
 Declaração
int matrizexemplo[4][4];
 Atribuição
matrizexemplo[0][0]=1; // atribui o valor 1 para a linha 0 e coluna 0 da matriz
matrizexemplo[1][1]=1; // atribui o valor 1 para a linha 1 e coluna 1 da matriz
matrizexemplo[2][2]=1; // atribui o valor 1 para a linha 2 e coluna 2 da matriz
matrizexemplo[3][3]=1; // atribui o valor 1 para a linha 3 e coluna 3 da matriz
scanf(“%i”,&matrizexemplo[0][1]); //guarda valor na linha 0 e coluna 1 da 
matriz.
 Saída
printf(“O valor da matriz na linha %i e coluna %i eh %i”, i, j, matrizexemplo[i][j]); 
//Valores da matrizexemplo:
//1 3 0 0
//0 1 0 0
//0 0 1 0
//0 0 0 1
EXEMPLO
 Faça um programaque leia uma matriz 3x3 e verifique quais valores desta matriz são pares.
#include<stdio.h>
int main()
{
int A[3][3],i,j;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("Entre com um numero na linha %i e coluna %i\n", i, j);
scanf("%i",&A[i][j]);
}
}
//Verifica quais valores no vetor são pares
for(i=0;i<3;i++){
for(j=0;j<3;j++){
if(A[i][j]%2==0)
{
printf("Na linha %i e coluna %i o valor %i eh par\n", i, j, A[i][j]);
}
}
}
}
EXERCÍCIO
 Faça um programa que leia e armazene uma 
matriz 3 x 3 de valores inteiros e calcule a 
soma de todos os valores de cada coluna. No 
final imprima o resultado de cada coluna.
TRABALHANDO COM TEXTO
 Na linguagem C para trabalhar com textos 
(strings) é necessário trabalhar com vetores de 
caracteres
DECLARAÇÃO
 char letra; //permite armazenar um caractere
 char nome[20]; //permite armazenar um texto 
com até 20 caracteres
 char listanome[10][20]; //permite armazenar 
um vetor de 10 textos com até 20 caracteres 
cada.
ATRIBUIÇÃO
 letra = ‘a’;
 strcpy(nome,“Apostila C”);
 strcpy(listanome[0],“Primeiro Nome”);
 Para Lembrar
 char letra;
 char nome[20]; 
 char listanome[10][20]; 
A biblioteca string.h contém a função:
strcpy(string_destino, string_origem);
(a string de origem é copiada e armazenada na string de destino)
COMANDOS DE ENTRADA
 scanf(“%c”, &letra); ou getc(letra);
 scanf(“%s”, &nome); ou gets(nome);
 scanf(“%s”, &listanome[0]); ou gets(listanome[0]);
 Obs.: Quando utilizar o comando gets utilize 
junto o fflush(stdin) para limpar a memória do 
console.  char letra;
 char nome[20]; 
 char listanome[10][20]; 
COMANDOS DE SAÍDA
 printf(“A letra digitada eh %c”, letra);
 printf(“O nome inserido eh %s”, nome);
 printf(“O nome na posição zero da lista eh %s”, 
listanome[0]);
 Para Lembrar
 char letra;
 char nome[20]; 
 char listanome[10][20]; 
EXEMPLO
 Faça um programa que o usuário entre com o 
nome de uma pessoa depois imprima a 
seguinte mensagem “Seja bem vindo NOME”, 
onde NOME é o nome digitado pelo usuário.
RESOLUÇÃO DO EXEMPLO
#include<stdio.h>
int main()
{
char Nome[100];
printf("Entre com o nome do usuario\n");
//scanf("%s",&Nome);//Le somente o primeiro 
nome
gets(Nome);//Le nome e sobrenome
printf("Seja Bem vindo %s\n",Nome);
}
EXEMPLO
 Faça um programa que solicite ao usuário o 
seu nome o nome da sua mãe e do seu pai. No 
final mostre as informações inseridas.
RESOLUÇÃO DO EXEMPLO
#include<stdio.h>
int main()
{
char Lista_Nomes[3][100];
printf("Entre com o seu nome\n");
gets(Lista_Nomes[0]);//Le nome e sobrenome
printf("Entre com o nome do seu pai\n");
gets(Lista_Nomes[1]);//Le nome e sobrenome
printf("Entre com o nome da sua mae\n");
gets(Lista_Nomes[2]);//Le nome e sobrenome
printf("Voce eh %s\n",Lista_Nomes[0]);
printf("Seu pai eh %s\n",Lista_Nomes[1]);
printf("Sua mae eh %s\n",Lista_Nomes[2]);
}
BIBLIOTECA
 Para utilizar os comandos a seguir deve ser 
inserido a biblioteca “string.h”. Com o seguinte 
comando: #include <string.h>
ALGUNS COMANDOS
 strcmp(texto1,texto2); //compara texto1 e texto 
2, caso eles sejam iguais retorna o valor zero.
 strcat(texto1,texto2); //concatena o texto1 com 
o texto 2
 strcpy(texto1,texto2);//copia texto2 para 
texto1.
 strlen(texto); //retorna o nº de caracteres
 *x=strtok(texto,token);//cria uma lista de 
palavras separadas pelo token
CONVERSÃO DE TEXTO EM NÚMERO
 x=atoi(texto);//converte texto em inteiro e 
armazena na variável x
 y=atof(texto);//converte texto em float(real) e 
armazena na variável x
 x=atol(texto);//converte texto em long e 
armazena na variável x
Obs.: Estas funções então na biblioteca stdlib.h.
BIBLIOGRAFIA
 Ascencio, Ana Fernanda Gomes; de Campos, Edilene
Aparecida Veneruchi. Fundamentos da programação de 
computadores: Algoritmos, Pascal, C/C++, e Java, 2 ed., 
Pearson, 2007
 Barros, A.M.S. ANSI C para quem tem pressa. 2003. 
Disponível em: 
http://www.dei.isep.ipp.pt/~abarros/docs/ANSI_C.pdf 
Acessado em: 06/08/2012.
 Huss, E. The C Library Reference Guide, 1997. Disponível 
em: http://www.acm.uiuc.edu/webmonkeys/book/c_guide/ 
Acessado em: 06/08/2012.
 Puga, S.; Rissetti, G. Lógica de programação e estruturas de 
dados com aplicações em Java, 2 ed, Pearson, 2009.

Outros materiais