Post on 19-Jan-2017
Prof.José Augusto Cintra
http://www.josecintra.com/blog
Linguagem de Programação
C
Introdução
Introdução
Nestas aulas abordaremos conceitos básicos da
linguagem C.
Pressupõe-se que o leitor já possua
conhecimentos de algoritmos e lógica de
programação em pseudocódigo (Portugol).
Você pode achar material e exercícios
resolvidos sobre o assunto no meu blog em:
http://josecintra.com/blog/algoritmos-logica-programacao-aulas/
2
Parte I
Conceitos básicos
3
Histórico
Criada por Denis Ritchie e Kenneth
Thompson, na década de 1970, para uso em um
computador DEC PDP-11 em Unix
C++ é uma extensão da linguagem C
O sistema Unix, assim como a maioria dos
software de base são escritos em C e C++
Existem compiladores C para praticamente
todos os processadores existentes.
Kenneth Thompson (à esquerda) e Dennis Ritchie (à direita), os criadores da linguagem C
4
Ranking das linguagens
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
5
Estrutura básica de um programa C
diretivas para o pré-processamento
declaração de variáveis globais
main ()
{
declaração de variáveis
comandos
}
6
Estrutura básica de um programa C
Diretiva #include permite incluir uma
biblioteca
Bibliotecas contêm funções pré-definidas,
utilizadas nos programas
Exemplos:
Funções de texto#include <string.h>
Funções matemáticas#include <math.h>
Funções padrão#include <stdlib.h>
Funções de entrada e saída#include <stdio.h>
7
Comentários
Use comentários, iniciados por // ou entre
/* */
/* isto é um
comentário */
// isto também é um comentário
8
Exemplo
/* meu primeiro programa C */
#include <stdio.h>
#include <stdlib.h>
main()
{
printf ("Alo mundo!"); //mostra
system("PAUSE"); //fica parado
}
Obs: Todos os comandos devem terminar com
ponto e virgula (;)
9
Declaração de variáveis
Os nomes das variáveis devem conter apenas
letras, dígitos e o símbolo _ e iniciar com
letra ou _
C diferencia letras maiúsculas de
minúsculas!
De início, trabalharemos com os tipos
abaixo:
Portugol C
inteiro int
real float
10
Declaração de variáveis
Em Portugol
var
media : real
idade : inteiro
Na Linguagem C
float media;
int idade;
11
Entrada de Dados
Usaremos a função “scanf” que será o
equivalente à função “leia” do Portugol
scanf ("formatos", &var1, &var2,...)
Os formatos que usaremos, por enquanto
são:
“%d” inteiro decimal
“%f” float
12
Entrada de Dados
Em Portugol
Para as variáveis
N1 do tipo inteiro e
N2 do tipo real
leia(N1)
leia(N2)
leia(N1,N2)
Na Linguagem C...
Para as variáveis
N1 do tipo int e
N2 do tipo float
scanf ("%d",&n1);
scanf ("%f",&n2);
scanf (“%d%f”,&n1,&n2);
13
Operadores matemáticos
Decrementa em 1 o valor de xx----
Incrementa em 1 o valor de xx++++
Resto da divisão de x por yx % y %
Divide x por y x / y /
Multiplica x e yx * y*
Subtrai y de xx – y -
Soma x e yx + y+
ComentárioExemploOperador
14
Operadores de atribuição
O operador de atribuição do C é o sinal de
igual (=) que seria o equivalente ao <- do
Portugol
Exemplo:
int idade, nova_idade;
idade = 18;
nova_idade = nova_idade + 1;
15
Operadores de atribuição
Equivale a x = x % yx %= y%=
Equivale a x = x / yx /= y /=
Equivale a x = x * yx *= y *=
Equivale a x = x – yx -= y-=
Equivale a x = x + yx += y +=
Atribui o valor de y a xx = y=
ComentárioExemploOperador
16
Saida de dados
Usaremos a função “print” que será o
equivalente à função “escreva” do Portugol
printf ("formatos", var1, var2,...)
Os formatos que usaremos, por enquanto são:
“%d” inteiro decimal
“%f” float
17
Saída de Dados
Em Portugol
Para as variáveis
N1 do tipo inteiro e
N2 do tipo real
escreva(N1)
escreva(N2)
escreva(N1,N2)
Na Linguagem C...
Para as variáveis
N1 do tipo int e
N2 do tipo float
printf ("%d“,n1);
printf ("%f“,n2);
printf (“%d%f”,n1,n2);
18
Exemplo completo//Cálculo da média
#include <stdio.h>
#include <stdlib.h>
main()
{
//Declaração de variáveis
float nota1, nota2, media;
//Entrada de dados
printf ("Digite primeira nota: ");
scanf ("%f" ,¬a1);
printf ("Digite segunda nota: ");
scanf ("%f" ,¬a2);
//Processamento
media=(nota1+nota2)/2;
// Saída de dados
printf ("Media = %f",media);
system("PAUSE");
}19
Parte II
Estruturas de Decisão
20
Estruturas de Decisão
São estruturas que, dada a avaliação de uma
expressão lógica (condição), permitem a
escolha de um fluxo de instruções a ser
executado
ƒ
No máximo só podem existir dois fluxos de
instruções:
Um se a condição for Verdadeira e outro se a
condição for Falsa
Para avaliar as expressões, podemos usar os
operadores relacionais e os operadores
lógicos21
O conteúdo de x é maior que o de y?x > y>
O conteúdo de x é menor que o de y?x < y <
O conteúdo de x é maior ou igual ao de y?x >= y >=
O conteúdo de x é menor ou igual ao de y?x <= y<=
O conteúdo de x é diferente do de y?x != y !=
O conteúdo de x é igual ao de y?x == y==
SignificadoExemploOperador
As expressões relacionais em C retornam:
1 se verdadeiro
0 se falso.
Operadores Relacionais
22
&& (E lógico): retorna verdadeiro se ambos
os operandos são verdadeiros e falso nos
demais casos.
Exemplo: if( a>2 && b<3).
|| (OU lógico): retorna verdadeiro se pelo
menos um dos operandos é verdadeiro, e
falso se ambos são falsos.
Exemplo: if( a>1 || b<2).
! (NÃO lógico): usada com apenas um
operando. Retorna verdadeiro se o operando
é falso e vice-versa.
Exemplo: if( !var ).
Operadores Lógicos
23
F ou F FF e F F
F ou V VF e V F
Não V FV ou F VV e F F
Não V FV ou V VV e V V
Tabela NÃOTabela OUTabela E
Tabela Verdade
24
Em portugol, o
comando de decisão
tem a seguinte
sintaxe:
se <condição> entao
<bloco de comandos>
senao
<bloco de comandos>
fimse
Estrutura de Decisão
Na linguagem C a
sintaxe é esta;
if (<condiçao>) {
<bloco de comandos>
}
else {
<bloco de comandos>
}
25
Observações:
Em C, a condição deve estar entre
parênteses;
Não existe a cláusula then e fimse;
O bloco de comandos deve estar entre
chaves{} (a menos que seja um único
comando;
A cláusula else é opcional;
A expressão é avaliada. Se ela for
verdadeira, o bloco if é executado. Caso
contrário, o bloco do else (se existir) é
executado;
Lembre-se: Apenas o código associado ao
if ou else será executado, nunca ambos.
Estrutura de Decisão
26
Escreva um algoritmo para determinar se uma pessoa é
maior ou menor idade.
#include <stdio.h>
#include <stdlib.h>
main (){
int idade;
printf ("Digite a idade da pessoa: ");
scanf ("%d", &idade);
if (idade >= 18)
printf ("Pessoa é maior de idade.\n");
else
printf ("Pessoa é menor de idade.\n");
system("pause");
}
Exemplo
27
Parte III
Estruturas de Repetição
28
São estruturas que permitem executar um
trecho de código várias vezes de acordo com
uma condição de parada.
Na linguagem C podemos escolher entre três
tipos de estruturas de repetição:
while (avalia a condição no início do laço)
do while (avalia a condição no fim do laço)
for (Usada principalmente em contagens)
Como veremos a seguir...
Estruturas de Repetição
29
while (condição){
<blocos de comandos>
}
Não esquecer dos parênteses;
O bloco de comandos será executado
enquanto a condição for verdadeira;
O programador deve cuidar para que a
condição fique falsa em algum
momento, do contrário o programa fica
indefinidamente repetindo os
comandos.
Estrutura while
30
Exemplo while
#include <stdio.h>#include <stdlib.h>//Exibir os números de 1 a 10 usando o comando while
main(){
int cont = 1 ;do while(cont <= 10) {
printf ("%d \n", cont); cont++;
}
system("PAUSE");
}Pergunta: O que vai acontecer se você inicializar a variável cont com o valor 11?
31
do {
<blocos de comandos>
} while (condição);
• Não esquecer dos parênteses;
• Os comandos serão executados pelo menos
uma vez. E continuarão sendo executados
enquanto a condição for verdadeira;
• O programador deve cuidar para que a
condição fique falsa em algum momento, do
contrário o programa fica indefinidamente
repetindo os comandos.
Estrutura do while
32
Exemplo do while
#include <stdio.h>#include <stdlib.h>//Exibir os números de 1 a 10 usando o comando do while
main(){
int cont = 1 ;do {
printf ("%d \n", cont); cont++;
} while (cont <=10)
system("PAUSE");
}Pergunta: O que vai acontecer se você inicializar a variável cont com o valor 11?
33
for (var=inicio; condição; incremento){
<bloco de comandos>
}
Não esquecer dos parênteses;
Os comandos serão executados enquanto a condição for verdadeira
O incremento ou decremento é executadoautomaticamente após a execução dos comandos
Estrutura for
34
#include <stdio.h>
#include <stdlib.h>
//Exibir os números de 1 a 10 usando o comando for
main()
{
int cont ;
for (cont = 1; cont <= 10; contador++ )
{
printf ("%d \n", cont);
}
system("PAUSE");
}
Exemplo for
35
E para forçar o término da repetição?
Use um break.
Exemplo: Saída:
1
2
3
4
5
após o FOR: 5
Press any key
to continue...
#include <stdio.h>
#include <stdlib.h>
main(){
int I;
for (I=1; I<=10; I=I+1){
printf ("%d\n",I);
if (I==5) break;
}
printf(“apos o FOR: %d\n",I);
}
Atenção para o valor de saída da variável de controle
Comando break
36
Saiba mais...
Estas aulas foram adaptadas e compiladas a
partir dos seguintes textos disponíveis na
Internet:
www.deinf.ufma.br/~cav/c-basico.ppt
www.inf.ufrgs.br/~alvares/INF01040/Aula5-IntroducaoC.ppt
http://www.fsc.ufsc.br/~canzian/root/tutorial-c-unicamp.pdf
Consulte o blog para materiais complementares e exercícios
resolvidos
http://www.josecintra.com/blog
37