Você está na página 1de 41

Revisão C

Variáveis, Operadores, Condicionais,


Repetição, Vetores e Matrizes.
Tarcísio Lucas
tarcisiodpl@gmail.com
IDE windows: DEV
Criar arquivo Compilar e executar
IDE online: DEV

Executar
Programa 1:
 Faça um programa em C que receba do teclado dois
valores reais. Em seguida o programa deverá mostrar
a média e o maior valor digitado.
 Ex.:
Programa 1:
Variáveis
 A Linguagem C dispõe de quatro tipos básicos de
dados.

Tamanho
Tipo Valor
(bytes)
Um caractere (ou um
char 1
inteiro de 0 a 127).

int 4 Um número inteiro.

Um número de ponto
float 4
flutuante.
Um número de ponto
double 8
flutuante.
Operadores
 Os operadores aritméticos disponíveis na linguagem C
são:

Operador Operação
+ soma
- subtração
* multiplicação
/ divisão
% resto da divisão
Imprimir na tela
 Na função printf, para cada tag existente no primeiro
parâmetro, deverá haver um novo parâmetro que
especifica o valor a ser exibido.
printf(“a = %d, b = %c e c = %f”,a,’m’,5.0);

 Caracteres especiais:
Caractere Significado
\a Caractere (invisível) de aviso sonoro.
\n Caractere (invisível) de nova linha.
\t Caractere (invisível) de tabulação horizontal.
\’ Caractere de apóstrofo
Leitura de dados do teclado
 O que acontece quando o computador executa uma
instrução de leitura de dados? Exemplo:
scanf(“%f”,&C); (“%d”, “%f”, “%c”, “%s”)
 A execução do programa é interrompida. O
computador espera que o usuário digite algum valor e
pressione a tecla Enter.

 Após pressionar Enter, o computador retoma a execução


do programa e armazena o(s) valor(es) digitado(s) no(s)
endereço(s) fornecido(s) na função scanf.
Comando if-else
 Para executar um processamento condicional, um
programa precisa utilizar o comando if.
 Todo comando if requer uma condição. O valor de uma
condição pode ser verdadeiro ou falso.
 Em C, não existe um tipo de dados específico para
representar valores lógicos (V ou F).

 Qualquer valor diferente de zero é interpretado como


verdadeiro, enquanto zero é falso.
Comando if-else
 Todo comando if requer uma condição que pode ser
verdadeira ou falsa.

 Caso a condição seja verdadeira, o comando if executa


um conjunto de instruções, podendo deixar de executar
um outro conjunto alternativo.

 Quando existe um conjunto de instruções a ser


executado, caso o valor da condição seja falso, utiliza-
se o comando if-else.
Comando if-else
 Exemplo:
if (delta >=0)
{
x1 = (-b + sqrt(delta))/(2*a);
x2 = (-b – sqrt(delta))/(2*a);
}
else
{
printf(“Sem raízes reais.”);
}

 Um conjunto de instruções começa com o símbolo { e


termina com o símbolo }. Caso, o conjunto contenha
apenas uma instrução, as chaves são opcionais.
Operadores relacionais

Operador Significado Condição Valor lógico

> Maior do que. (a != x)

< Menor do que. (a/2.0 == x) .

>= Maior do que ou igual a. (a/2 == x)

<= Menor do que ou igual a. (a/x < 2)

== Igual a. (a)

!= Diferente de. (a – 2*x)

int a = 3; float x = 1.5;


Operadores relacionais

Operador Significado Condição Valor lógico

> Maior do que. (a != x) Verdadeiro.

< Menor do que. (a/2.0 == x) Verdadeiro.

>= Maior do que ou igual a. (a/2 == x) Falso.

<= Menor do que ou igual a. (a/x < 2) Falso.

== Igual a. (a) Verdadeiro.

!= Diferente de. (a – 2*x) Falso.

int a = 3; float x = 1.5;


Operadores lógicos
 Os operadores lógicos permitem combinar várias
condições em uma única expressão lógica.
Operador Significado Expressão Valor Lógico

&& Conjunção lógica (“and”) ((a/2 == x) && (a > 2))

|| Disjunção lógica (“or”) ((x <= a) && (a >= 2*x))

! Negação lógica (“not”) (!(a/3 <= x))

(a && x)

((a – 2*x) || (x < a/2))

int a = 3; float x = 1.5;


Operadores lógicos
 Os operadores lógicos permitem combinar várias
condições em uma única expressão lógica.
Operador Significado Expressão Valor Lógico

&& Conjunção lógica (“and”) ((a/2 == x) && (a > 2)) Falso.

|| Disjunção lógica (“or”) ((x <= a) && (a >= 2*x)) Verdadeiro.

! Negação lógica (“not”) (!(a/3 <= x)) Falso.

(a && x) Verdadeiro.

((a – 2*x) || (x < a/2)) Falso.

int a = 3; float x = 1.5;


Funções

Nome
Tipo de retorno Parâmetros

int maiorValor(int idade1, int idade2)


{
if (idade1 > idade2)
return idade1;
else Retorno
return idade2;
}
Resumo sintaxe

Tipos: char, int, float, double

Operadores: +, -, /, *, %

system(“PAUSE”); sqrt();
variavel++; variavel--;

scanf(“%d”, &variavel);
printf(“\n \a \t %c %d %f”, ‘A’, 10, 10.0);
Resumo sintaxe

if(condicao){ Estrutura condicional

comandos;
}else{
comandos; Funções
} tipo nomeFunção(parâmetros){
tipo variavel;
comandos;
return variavel;
}
Estruturas de repetição
 C oferece 3 tipos de laços:
 while

 for

 do / while

 Todos fazem a mesma coisa:


 Executam um conjunto de instruções enquanto uma
condição for satisfeita.
Laço while

 Sintaxe:
while( teste ) Enquanto o teste for
{ verdadeiro ele executa
todos os comando
//Comandos
delimitados pelas
} chaves.
Laço while

 Sintaxe:
while( teste ) Enquanto o teste for
{ verdadeiro ele executa
todos os comando
//Comandos
delimitados pelas
} chaves.
 Exemplo:
conta = 0;
while( conta < 10 ){
printf(“conta = %d\n”, conta );
conta++;
}
Laço for
 O laço for engloba três expressões
 Inicialização
 Executa uma única vez no inicio do laço.
 Teste
 Condição que controla o laço.
 O laço será executado enquanto esta condição
for verdadeira.
 Incremento
 Definequando a variável de controle do laço
será alterada.
Laço for
 Sintaxe
for( inicialização; teste; incremento )
{
//Comandos
//Comandos
}
 Exemplo:
for(conta = 0; conta < 10; conta++ )
{
printf(“conta = %d\n”, conta );
}
Laço do-while
 Sintaxe:
do
{
//Comandos
//Comandos
} while( teste );

 É semelhante ao while, porém, testa a condição após


uma execução do laço.
 Dessa forma, o corpo do laço é executado pelo
menos uma vez.
Programa 2:
 Faça um programa em C que receba os tempos de 10
corredores que participaram da prova dos 100
metros e imprima na tela o melhor tempo e o tempo
médio da prova.
 Ex.:
Programa 2:
Programa 2:
Vetores e Matrizes
 Vetores
 Uma dimensão
 Ex: notas[10]
 Matrizes
 Duas dimensões
 Ex: matriz[10][10]

 O conceito é o mesmo!
 Vetores e matrizes são variáveis indexadas, ou seja,
armazenam um conjunto de valores que são
acessados por índices.
Vetores
 Sintaxe:
TipoVariavel nomeVariavel[tamanho];
 Exemplo:
int notas[10];
0 1 2 3 4 5 6 7
notas 8 9

notas[0]
notas[1]
...
notas[9]
Vetores
 Como declarar:
int valores[5];
float notas[2000];
char palavra[100];

 Como acessar:
valores[0] = 2341;
valores[1] = 145;
scanf(“%d”, &valores[3]);
int i = 4;
valores[i] = 3234;
printf(“Valor[%d] = %d”, i, valores[i]);
Programa 3:

Declara um vetor
de 5 posições.

Armazena o valor
lido na i-ésima
posição.

Acessa o valor da i-
ésima posição.
Vetores e seus limites
 No exemplo :
 Vetor possui cinco posições
 Índice da última posição é 4

 Acessar notas[5] causa falha de memória.

 Índice deve variar de 0 a [tamanho -1];


 C não avisa quando o limite de um vetor é
excedido!
 Se o programa transpuser o fim do vetor durante a
operação de atribuição, os valores serão
armazenados em posições inválidas de memória, ou
sobrescrevendo outras variáveis;
Vetores e seus limites
 Onde está o erro?
Vetores: inicialização
 Tipo 1:

 Tipo 2:

 Quando o tamanho do vetor for especificado e


houver a lista de inicialização:
 Se há menos inicializadores que o tamanho
especificado, os outros serão zero;
 Mais inicializadores que o necessário implica um aviso
de compilação (warning).
Matrizes

 Considere as variáveis a[10], b[3][5]

a
0 1 2 3 4 5 6 7 8 9

b
(0,0) (0,1) (0,2) (0,3) (0,4)

(1,0) (1,1) (1,2) (1,3) (1,4)

(2,0) (2,1) (2,2) (2,3) (2,4)


Matrizes
 Como declarar:
int matriz[2][2];
float notas[2000][2];

 Como acessar:
matriz[0] [0] = 1;
matriz[0] [1] = 2;
matriz[1] [0] = 3;
matriz[1] [1] = 4;
scanf(“%d”, &matriz [0][0]);
printf(“%d”, matriz[0][0]);
Matrizes: inicialização
 Pode ser feita na declaração:

 No segundo caso, deve ser informada ao menos a


segunda dimensão
 Usando laços:
Programa 4
 Imprimindo o conteúdo de uma matriz utilizando
laços aninhados:
Referência

 Download gratuito:
http://professor.ic.ufal.br
/jaime/
Revisão C
Variáveis, Operadores, Condicionais,
Repetição, Vetores e Matrizes.
Tarcísio Lucas
tarcisiodpl@gmail.com

Você também pode gostar