Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Yandre Maldonado - 1
Introdução à Linguagem C
• Linguagem C:
– Desenvolvida por Dennis Ritchie nos laboratórios
da AT&T Bell (EUA) no início dos anos 70;
Algol
Algol BCPL
BCPL BB CC
(1960
(1960––Europa)
Europa) (Inglaterra)
(Inglaterra) (1970
(1970––EUA)
EUA) (1972
(1972––EUA)
EUA)
• C vs. C++
C
C++
• Linguagem C: linguagem de programação imperativa
estruturada;
• Linguagem C++:
• Linguagem Orientada a Objetos;
• Formadas pela linguagem C adicionada de um conjunto de instruções
voltados à OO;
• Quem sabe programar em C conhece a maior parte de C++;
Prof. Yandre Maldonado - 4
Introdução à Linguagem C
“C
“C éé aa linguagem
linguagem de
de um
um programador”
programador”
Herbert
Herbert Schildt
Schildt
Prof. Yandre Maldonado - 5
Introdução à Linguagem C
“C
“C éé uma
uma linguagem
linguagem versátil”
versátil”
Prof. Yandre Maldonado - 6
Introdução à Linguagem C
Alto
Altonível:
nível: Baixo
Baixonível:
nível:
-- Estruturada;
Estruturada; -- Linguagem
Linguagem dedemáquina;
máquina;
-- Modular;
Modular; -- Bits
Bitseebytes;
bytes;
-- Portátil;
Portátil; -- Endereços
Endereçosde dememória;
memória;
Introdução à Linguagem C
• Primeiros passos na Linguagem C:
Prof. Yandre Maldonado - 7
• C é case sensitive:
• Pode-se declarar quatro variáveis diferentes com os
nomes Soma, soma, SOMA e SoMa, embora não seja
recomendável na maioria das vezes;
• Todas as palavras reservadas da linguagem C devem ser
descritas em letra minúscula, assim temos:
• for : palavra reservada que rotula a estrutura de
repetição “para”;
• if : palavra reservada que rotula a estrutura de seleção
“se”;
• For : poderia ser um nome de variável;
• If : poderia ser um nome de variável;
Prof. Yandre Maldonado - 8
Introdução à Linguagem C
• Exercícios:
• printf()
• Função de E/S;
• Para utilizá-la deve-se incluir no cabeçalho o
arquivo stdio.h (standard i/o);
• Forma geral:
• printf(string_de_controle, lista_de_argumentos);
• Primeiro programa em C: #include
#include <stdio.h>
#include
<stdio.h>
<conio.h>
#include <conio.h>
void
void main()
main()
#include
#include <stdio.h>
<stdio.h> {{
#include <conio.h>
#include <conio.h> clrscr();
clrscr();
void
void main
main () printf("oi
() printf("oi mundo");
mundo");
{{ getch ();
getch ();
printf
printf (“Oi
(“Oi mundo.”);
mundo.”); }}
getch ();
getch ();
}}
Introdução à Linguagem C
• scanf()
Prof. Yandre Maldonado - 14
• Função de E/S;
• Para utilizá-la deve-se incluir no cabeçalho o arquivo
stdio.h (standard i/o);
• Forma geral:
• scanf(string_de_controle, lista_de_argumentos);
• Expressão de controle “\n”: pode ser Código Significado
%c Caractere simples
utilizada dentro da string de controle %d Decimal
para iniciar uma nova linha; %ld Long
%e Notação científica
• Códigos de Formatação %f Ponto flutuante
%o Octal
%s Cadeia de caracteres
%u Decimal sem sinal
%x Hexadecimal
Introdução à Linguagem C
• Tipos de variáveis:
Prof. Yandre Maldonado - 15
• tipo nome;
• Regras gerais:
• Declarar antes do uso;
• Incluir na declaração o nome e tipo da variável;
• Na ocorrência de mais de uma variável de mesmo tipo, podemos
declará-las separando seus nomes por vírgulas em uma mesma linha;
• Em C, não existe tipo booleano (lógico) e nem string (cadeia);
• O valor zero (0) é considerado falso e qualquer outro valor é
considerado verdadeiro;
• Exemplos:
int K;
double valores;
float quadro;
char caracter;
Introdução à Linguagem C
• Outras funções de E/S:
Prof. Yandre Maldonado - 17
• putchar()
• A função putchar() imprime uma
variável do tipo caracter na tela;
• Arquivo de inclusão: <stdio.h>
• Exemplo:
#include
#include <stdio.h>
<stdio.h>
#include <conio.h>
#include <conio.h>
main()
main()
{
{
char
char letra;
letra;
clrscr();
clrscr();
letra='a';
letra='a';
putchar(letra);
putchar(letra);
getch();
getch();
}}
Introdução à Linguagem C
• Outras funções de E/S:
Prof. Yandre Maldonado - 18
• getch()
• A função getch() lê um caractere do
teclado sem ecoá-lo na tela (no turbo C);
• Arquivo de inclusão: <conio.h>
• Exemplo:
#include
#include <stdio.h>
<stdio.h>
#include
#include <conio.h>
<conio.h>
main()
main()
{{
char
char letra;
letra;
clrscr();
clrscr();
printf
printf ("Digite
("Digite um
um caracter:
caracter: ");
");
letra=getch();
letra=getch();
printf ("\nCaractere digitado: %c\n", letra);
printf ("\nCaractere digitado: %c\n", letra);
getch
getch ();
();
}}
Introdução à Linguagem C
• Outras funções de E/S:
Prof. Yandre Maldonado - 19
• getche()
• A função getche() lê um caractere do
teclado e imprime o mesmo na tela;
• Arquivo de inclusão: <conio.h>
• Exemplo:
#include
#include <stdio.h>
<stdio.h>
#include
#include <conio.h>
<conio.h>
main()
main()
{{
char
char letra;
letra;
clrscr();
clrscr();
printf
printf ("Digite
("Digite um
um caracter:
caracter: ");
");
letra=getche();
letra=getche();
printf ("\nCaractere digitado: %c", letra);
printf ("\nCaractere digitado: %c", letra);
getch
getch ();
();
}}
Introdução à Linguagem C
• Programa para calcular a área de um
Prof. Yandre Maldonado - 20
círculo:
#include
#include <stdio.h>
<stdio.h>
#include
#include <conio.h>
<conio.h>
main
main ()
()
{{
float
float R,
R, Area;
Area;
clrscr();
clrscr();
printf
printf ("Digite
("Digite oo raio
raio da
da circunferencia:
circunferencia: ");");
scanf
scanf ("%f",&R);
("%f",&R);
Area
Area == 3.14*R*R;
3.14*R*R;
printf
printf ("A
("A area
area do
do circulo
circulo ee igual
igual a:
a: %f\n\n",Area);
%f\n\n",Area);
getch
getch ();
();
}}
Introdução à Linguagem C
• Exercícios:
Prof. Yandre Maldonado - 21
#include
#include <stdio.h>
<stdio.h>
#include
#include <conio.h>
<conio.h> Volume do Cilindro
#include
#include <math.h>
<math.h>
void
void main
main ()
()
{{
float
float R,
R, H,
H, V;
V;
printf
printf ("Calculo
("Calculo dodo Volume
Volume de
de um
um Cilindro\n\n");
Cilindro\n\n");
printf
printf ("Digite
("Digite oo valor
valor do
do raio
raio da
da base
base do
do cilindro:
cilindro: ");
");
scanf
scanf ("%f",
("%f", &R);
&R);
printf
printf ("Digite
("Digite oo valor
valor da
da altura
altura dodo cilindro:
cilindro: ");
");
scanf
scanf ("%f",
("%f", &H);
&H);
V=3.14*pow(R,2)*H;
V=3.14*pow(R,2)*H;
printf
printf ("\n\nO
("\n\nO Volume
Volume do
do Cilindro
Cilindro ‚‚ igual
igual a:
a: %.2f",
%.2f", V);
V);
printf
printf ("\n\n\nFim
("\n\n\nFim dada execução!\n");
execução!\n");
getch();
getch();
}}
Introdução à Linguagem C
#include
#include <stdio.h>
Prof. Yandre Maldonado - 23
<stdio.h>
#include <conio.h>
#include <conio.h> Raízes da Equação do 2º grau
#include
#include <math.h>
<math.h>
void
void main
main ()
()
{{
float
float a,
a, b,
b, c,
c, delta,
delta, x1,
x1, x2;
x2;
printf
printf ("Calculo das ra¡zes reais
("Calculo das ra¡zes reais da
da equacao
equacao do do tipo
tipo
ax2+bx+c=0\n\n");
ax2+bx+c=0\n\n");
printf
printf ("Digite
("Digite oo valor
valor dodo coeficiente
coeficiente a: a: ");
");
scanf ("%f", &a);
scanf ("%f", &a);
printf
printf ("Digite
("Digite oo valor
valor dodo coeficiente
coeficiente b: b: ");
");
scanf ("%f", &b);
scanf ("%f", &b);
printf
printf ("Digite
("Digite oo valor
valor dodo coeficiente
coeficiente c: c: ");
");
scanf
scanf ("%f",
("%f", &c);
&c);
delta=b*b-4*a*c;
delta=b*b-4*a*c;
x1=(-b+sqrt(delta))/(2*a);
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
printf
printf ("\n\nO
("\n\nO valor
valor de
de x1
x1 ‚:
‚: %f",
%f", x1);
x1);
printf
printf ("\nE
("\nE oo valor
valor de
de x2
x2 ‚:
‚: %f",
%f", x2);
x2);
printf
printf ("\n\n\nFim
("\n\n\nFim da da execução!\n\n");
execução!\n\n");
getch ();
getch ();
}}
Introdução à Linguagem C
Operadores:
Prof. Yandre Maldonado - 24
+ Soma A=A+1;
- Subtração Total=subtotal-desconto;
* Multiplicação nota=nota*2;
/ Divisão Comissão=lucro/4;
% Módulo (retorna o resto da divisão) Resto=8%3;
Op. Tipo
++ Incremento
-- Decremento
! Lógico Não
* Multiplicação
/ Divisão
% Resto
+ Adição
- Subtração
< Menor
<= Menor igual
> Maior
>= Maior igual
Prof. Yandre Maldonado - 28
Introdução à Linguagem C
Op. Tipo
< Menor
<= Menor igual
> Maior
>= Maior igual
== Igual
!= Diferente
&& E (lógico)
|| OU (lógico)
= Atribuição
*= Atribuição (mult.)
/= Atribuição (div.)
%= Atribuição (resto)
+= Atribuição (adição)
-= Atribuição (subt.)
Introdução à Linguagem C
• Comandos de Decisão (Estruturas de Seleção)
Prof. Yandre Maldonado - 29
• if-else; if
if (expressão
(expressão de
de teste)
teste)
{{
• switch; instrução
instrução 1;
1;
instrução 2;
• Comando if-else Bloco 1 instrução 2;
...
...
instrução
instrução n;
• Estrutura geral ⇒ }}
n;
else
Esta estrutura de seleção é else
{{
instrução
instrução 1;
capaz de tomar uma decisão instrução
1;
2;
instrução 2;
simples, se a expressão de Bloco 2 ...
...
instrução
instrução n;
n;
teste for verdadeira, o bloco }}
switch
switch (expressão)
(expressão)
{{
• Instrução de seleção case
case constante1:
constante1:
múltipla; instrução
instrução 1;
...
1;
...
• Equivalente ao case instrução
instrução n;
break;
n;
break;
do Pascal; case
case constante2:
constante2:
instrução
instrução 1;
1;
• Permite a seleção ...
...
instrução
instrução n;
n;
exclusiva de um break;
break;
...
entre vários blocos ...
case
case constante
constante n:n:
instrução 1;
de instruções; instrução 1;
...
...
instrução
instrução n;
• Forma geral ⇒ break;
break;
n;
default:
default:
instrução
instrução 1;
1;
...
...
instrução
instrução n;
n;
}}
Introdução à Linguagem C
• Observações referentes à sintaxe:
Prof. Yandre Maldonado - 32
#include
#include <stdio.h>
#include <stdio.h>
#include <conio.h>
<conio.h>
void main
void
{{ main ()
()
char
char op;
op;
printf
printf ("Escolha
uma
uma opcao:
\n\n");
printf ("Escolha
(" 1 - opcao:
Primeira \n\n");
opcao;\n\n");
printf
printf (" 1 - Primeira opcao;\n\n");
printf ("
printf (" 2
(" 32--- Segunda
Segunda opcao;\n\n");
Terceira opcao;\n\n");
opcao;\n\n");
printf
printf (" (" 3 - Terceira opcao;\n\n");
4 - Quarta opcao;\n\n");
printf ("
op=getch(); 4 - Quarta opcao;\n\n");
op=getch();
switch (op)
switch
{{ (op)
case
case '1':
'1':("Voce escolheu a primeira opcao!\n\n");
printf
printf
break; ("Voce escolheu a primeira opcao!\n\n");
casebreak;
'2':
case '2':("Voce escolheu a segunda opcao!\n\n");
printf
break; ("Voce escolheu a segunda opcao!\n\n");
printf
casebreak;
'3':
case '3':("Voce escolheu a terceira opcao!\n\n");
printf
break; ("Voce escolheu a terceira opcao!\n\n");
printf
casebreak;
'4':
case '4':("Voce escolheu a quarta opcao!\n\n");
printf
printf
break; ("Voce escolheu a quarta opcao!\n\n");
break;
default:
default:
printf ("Voce nao escolheu nenhuma das opcoes oferecidas!\n\n");
}} printf ("Voce nao escolheu nenhuma das opcoes oferecidas!\n\n");
getch ();
}}getch ();
Prof. Yandre Maldonado - 35
Introdução à Linguagem C
• Exercício:
– Gasolina R$ 1,50;
– Álcool R$ 0,90;
– Diesel R$ 0,80.
Prof. Yandre Maldonado - 36
Introdução à Linguagem C
• Comandos de Iteração
(Estruturas de Controle de Repetições)
• Comando for:
• Permite a repetição da execução de um bloco de
instruções controlada por um contador;
• Forma geral:
for (inicialização; condição; incremento)
bloco de instruções;
• Onde:
• inicialização: é a atribuição do valor inicial ao
contador;
• condição: estabelece a condição limite de parada para
a repetição do laço;
• incremento: estabelece o valor segundo o qual o
contador deve variar;
Prof. Yandre Maldonado - 38
Introdução à Linguagem C
void
void main
main ()
()
{{
int
int i;
i;
for
for (i=1;i<=20;i++)
(i=1;i<=20;i++)
printf
printf ("Numero:
("Numero: %d\n",i);
%d\n",i);
getch
getch ();
();
}}
Prof. Yandre Maldonado - 39
Introdução à Linguagem C
• Exercícios:
1. Durante trinta dias de um determinado
mês, foram colhidas as temperaturas
médias diárias de uma determinada região
em graus celsius. Faça um algoritmo que
calcule e informe a temperatura média do
mês, e a temperatura mais alta do mês.
2. Faça um algoritmo que calcule o fatorial de
um número inteiro fornecido pelo usuário.
Introdução à Linguagem C
• Comando while:
Prof. Yandre Maldonado - 40
void
void main
main ()
()
{{
int
int n;n;
do
do {{
printf
printf ("Digite
("Digite um
um numero:
numero: ");
");
scanf
scanf ("%d",&n);
("%d",&n);
}} while
while (n>=0);
(n>=0);
}}
Prof. Yandre Maldonado - 44
Introdução à Linguagem C
• Exercícios:
1. Faça um algoritmo para calcular a soma entre os números de
um conjunto de números inteiros e positivos a ser fornecido
pelo usuário utilizando os comandos while e do-while;
2. Faça um algoritmo que permita ao usuário inserir dados para
as seguintes perguntas:
• Idade (inteiro);
• Altura (real);
• Sexo (caracter, m ou f);
Sabe-se que o número de entrevistados é indefinido, e depois
de inseridos os dados o algoritmo deverá informar:
• O número de mulheres cuja idade está entre 20 e 35 anos;
• O número de homens que tem mais de 1.80m de altura;
Introdução à Linguagem C
• Agregados de Dados
Prof. Yandre Maldonado - 45
void
void main
main ()
()
{{
int
int x[100];
x[100];
int
int i;
i;
for
for (i=0;i<100;++i)
(i=0;i<100;++i)
x[i]=i;
x[i]=i;
for
for (i=0;i<100;++i)
(i=0;i<100;++i)
printf
printf ("
(" %d
%d ,",x[i]);
,",x[i]);
printf
printf ("\n\n");
("\n\n");
getch();
getch();
}}
Introdução à Linguagem C
• Para a leitura de vetores de caracteres, pode-se
Prof. Yandre Maldonado - 48
void
void main
main ()
()
{{
char
char nome[25];
nome[25];
printf
printf ("Digite
("Digite umum nome:
nome: ");
");
gets(nome);
gets(nome);
printf
printf ("O
("O nome
nome que
que voce
voce digitou
digitou e:
e: ");
");
puts(nome);
puts(nome);
//
// ou
ou printf
printf ("O
("O nome
nome que
que voce
voce digitou
digitou e:
e: %s\n\n",
%s\n\n", nome);
nome);
getch
getch ();
();
}}
Prof. Yandre Maldonado - 50
Introdução à Linguagem C
• Estruturas:
• A palavra chave struct informa ao compilador que um modelo de
estrutura está sendo definido;
• Forma geral:
struct identificador {
tipo nome_da_variável;
tipo nome_da_variável;
tipo nome_da_variável;
...
}
• Exemplo: AAdeclaração
declaraçãomostrada
mostradaaoaolado
lado
struct pessoa apenas
apenasdefine
defineaaforma
formadada
{ estrutura,
estrutura,neste
nestecaso
casoainda
aindanão
não
char nome[30];
foi
foi criada
criada nenhuma
nenhuma variável,
variável,
char endereco[40];
char cidade[20]; portanto
portantoainda
aindanão
nãohouve
houvegasto
gasto
int idade; de
dememória.
memória.
};
Prof. Yandre Maldonado - 51
Introdução à Linguagem C