linguagem c parte 1
DESCRIPTION
Linguagem CTRANSCRIPT
![Page 1: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/1.jpg)
Curso: Manutenção e Suporte em Informática
Professor: Mauro Jansen
Curso: Manutenção e Suporte em InformáticaDisciplina: Linguagem de Programação
Linguagem CIntrodução, Tipos, variáveis, expressões
e estruturas de controle
![Page 2: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/2.jpg)
Introdução à linguagem C
Prof. Mauro JansenLinguagem de Programação
Linguagem C – parte 1 2
![Page 3: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/3.jpg)
Histórico
� Criada na década de 70 por Denis Ritchie (Bell Labs)
� Objetivo: ser uma linguagem mais fácil que o Assembler mas que permitisse grande
Prof. Mauro Jansen
o Assembler mas que permitisse grande controle sobre o hardware, para a programação do sistema Unix
� Influência das linguagens BCPL e B
Linguagem de ProgramaçãoLinguagem C – parte 1 3
![Page 4: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/4.jpg)
Características
� Genérica: usada para a criação de programas para diversas áreas� Ex: aplicativos, sistemas operacionais, automação industrial, engenharia, física, química, etc.
Prof. Mauro Jansen
química, etc.� Linguagem “mista”: tem características de linguagem de alto e baixo nível
� Induz a uma boa estruturação de programas
� Influenciou várias outras linguagensLinguagem de Programação
Linguagem C – parte 1 4
![Page 5: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/5.jpg)
Características
� É “case sensitive”: minúsculas e maiúsculas fazem diferença� Variável “nome” é diferente de “Nome”
� É compilada (gera arq.executável)
Prof. Mauro JansenLinguagem de Programação
Linguagem C – parte 1 5
![Page 6: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/6.jpg)
O pré-processador
� Parte do compilador C que trata alguns textos (comandos) do código-fonte antes da tradução em código executável
� Esses comandos são as diretivas do pré-
Prof. Mauro Jansen
� Esses comandos são as diretivas do pré-processador. Ex:� #define� #include
Linguagem de ProgramaçãoLinguagem C – parte 1 6
![Page 7: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/7.jpg)
Diretivas do pré-processador
� #define: define um identificador e uma sequência de caracteres que será substituída pelo identificador no código-fonte. Ex: Em todo o código fonte, PI
Prof. Mauro Jansen
� #include: inclui um cabeçalho ou outro arquivo-fonte no ponto onde está a diretiva. Ex:
Linguagem de ProgramaçãoLinguagem C – parte 1 7
#define PI 3.1415
#include <stdio.h>
Em todo o código fonte, PI será substituído por 3.1415
Inclui o arquivo “stdio.h” (definições padrões para entrada e saída de dados) no programa-fonte
![Page 8: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/8.jpg)
Estrutura básica de um programa em C
#Include <biblioteca1.h>
#Include <biblioteca2.h>
...
Void main()
{
Inclusão de arquivo de bibliotecas de comandos
Função main(): é obrigatória. É a primeira
Prof. Mauro JansenLinguagem de Programação
Linguagem C – parte 1 8
{
<Declaração de variáveis>
...
<comandos>
...
}
obrigatória. É a primeira função chamada quando o programa é iniciado
Delimitadores de inicio e fim de bloco de comandos
![Page 9: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/9.jpg)
Comentários
� Comentários são úteis para documentar o programa, e devem ser sempre usados
� Existe dois modos:� Posição livre: usa-se o comando //
Prof. Mauro Jansen
� Posição livre: usa-se o comando //� Várias linhas: usa-se o comando /* */
Linguagem de ProgramaçãoLinguagem C – parte 1 9
![Page 10: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/10.jpg)
Palavras reservadas
� São os comandos e funções próprias do vocabulário da linguagem. Ex.:� auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, struct, switch,
Prof. Mauro JansenLinguagem de Programação
Linguagem C – parte 1 10
for, goto, if, int, long, register, struct, switch, typedef, union, unsigned, void, volatile, while, etc.
![Page 11: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/11.jpg)
Exemplo de programa em C
/*
Programa: calcular a média entre duas notas
Autor...: prof.Mauro
*/
#Include <stdio.h>
Void main()
Prof. Mauro JansenLinguagem de Programação
Linguagem C – parte 1 11
{
float nota1,nota2; // declaração de variáveis
printf(“Digite a primeira nota: “);
scanf(“%f”,¬a1);
printf(“Digite a segunda nota: “);
scanf(“%f”,¬a2)
printf(“A média é: %f”,(nota1+nota2)/2);
}
![Page 12: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/12.jpg)
Comando de saída: printf
� Sintaxe: printf(<string de controle>,<lista de argumentos>)
� Códigos de controle:Código Formato Código Formato
Mensagem (string) com códigos de controle embutidos na mesma
Valores que serão substituídos na mensagem, no lugar de cada código de
controle iniciado por %
Prof. Mauro Jansen
� Exemplos:printf(“O valor de PI é %f”,3.1415);
printf(“Meu nome é %s e eu tenho %d anos\n”,”João”,18);
Linguagem de ProgramaçãoLinguagem C – parte 1 12
Código Formato Código Formato
%d Inteiro com sinal %X Hexadecimal
%f Float (número real) %o Octal
%c Caractere %E Notação científica
%s String %p Ponteiro
%u Inteiro sem sinal \n salta linha
![Page 13: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/13.jpg)
Comando de entrada: scanf
� Sintaxe:scanf(<string de controle>,<lista de argumentos>)
� Exemplo:
códigos de controle que identificarão o tipo de dado a ser digitado pelo usuário
Variável(is) que receberá(ão) os dados, precedida(s) pelo sinal &
Prof. Mauro Jansen
� Exemplo:
Linguagem de ProgramaçãoLinguagem C – parte 1 13
#Include <stdio.h>
Void main()
{
char c;
float n;
printf(“Digite uma letra: “);
scanf(“%c”,&c);
printf(“Digite um valor real: “);
scanf(“%f”,&n);
printf(“Letra: %c , número: %f”,c,f);
}
![Page 14: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/14.jpg)
Tipos de dados, constantes, variáveis, operadores e
Prof. Mauro JansenLinguagem de Programação
Linguagem C – parte 1 14
variáveis, operadores e expressões em C
![Page 15: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/15.jpg)
Tipos de dados
� A linguagem C tem os tipos básicos� Char (caractere), Int (inteiro), float (real), double (real)
� E modificadores de tipo, que vêm antes do
Prof. Mauro Jansen
� E modificadores de tipo, que vêm antes do tipo e podem ser combinados:� Unsigned: sem sinal� Signed: com sinal (padrão)� Short: menor precisão (padrão)� Long: maior precisão
Linguagem de ProgramaçãoLinguagem C – parte 1 15
![Page 16: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/16.jpg)
Tipos de dados
Prof. Mauro JansenLinguagem de Programação
Linguagem C – parte 1 16
![Page 17: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/17.jpg)
Constantes e variáveis
� Constante: porção de dados que não muda seu valor durante a execução do programa. Exemplos: 23, ‘X’, “Linguagem C”, 1.234� Constantes não precisam de nome, mas podemos nomeá-las usando a diretiva #define. Ex: #define PI
Prof. Mauro Jansen
nomeá-las usando a diretiva #define. Ex: #define PI 3.1415
� Variável: porções de dados que podem mudar seu valor durante a execução do programa� Uma variável precisa ter um nome e tipo e precisa ser declarada e inicializada
Linguagem de ProgramaçãoLinguagem C – parte 1 17
![Page 18: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/18.jpg)
Constantes de barra invertida
� São códigos que iniciam com uma barra invertida que representam uma constante tipo caractere dentro de strings, como no comando printf. Veja alguns:
Código Significado
\n Nova linha (new line)
Muito usado no printf para saltar para próxima linha
Prof. Mauro Jansen
\” Aspas
\’ Apóstrofo
\0 Nulo
\\ Barra invertida
\t Tabulação horizontal
\a Sinal sonoro (beep)
\N Constante octal (N é o valor da constante)
\xN Constante hexadecimal (N é o valor da constante)
para próxima linha
![Page 19: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/19.jpg)
Regras para nomes de variáveis
� Começar com letra ou sublinhado (_)� Caracteres seguintes podem ser letras, números ou sublinhado
� Não pode ser palavra reservada ou função
Prof. Mauro Jansen
� Não pode ser palavra reservada ou função� Maiúsculas e minúsculas fazem diferença
Linguagem de ProgramaçãoLinguagem C – parte 1 19
![Page 20: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/20.jpg)
Declaração e inicialização de variáveis
� A declaração é feita da seguinte forma:
� Obs: Na linguagem C não há uma seção específica para declaração de variáveis
<tipo de dado> <lista de variáveis>;
Prof. Mauro Jansen
específica para declaração de variáveis� Exemplos:
Linguagem de ProgramaçãoLinguagem C – parte 1 20
char ch,letra;
long cont;
![Page 21: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/21.jpg)
Declaração e inicialização de variáveis
� Inicialização: podemos atribuir valor no momento da declaração ou depois, usando o operador de atribuição “=“ :
Prof. Mauro JansenLinguagem de Programação
Linguagem C – parte 1 21
Char ch=‘D’;
Int num=123;
num=10;
![Page 22: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/22.jpg)
Operadores aritméticos
� Usados em operações matemáticasOperador Ação
+ Soma
- Subtração ou troca de sinal
* Multiplicação
Prof. Mauro JansenLinguagem de Programação
Linguagem C – parte 1 22
* Multiplicação
/ Divisão
% Resto da divisão
++ Incrementa valor de uma variável
-- Decrementa valor de uma variável
+= Atribuição com soma
-= Atribuição com subtração
![Page 23: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/23.jpg)
Operadores relacionais
� Usados em comparações entre valores
Operador Significado
> Maior
>= Maior ou igual
Prof. Mauro JansenLinguagem de Programação
Linguagem C – parte 1 23
>= Maior ou igual
< Menor
<= Menor ou igual
== Igual
!= Diferente
![Page 24: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/24.jpg)
Operadores lógicos
� Usados em expressões lógicas compostas
Operador Significado
&& Operador E. Retorna verdadeiro se ambos valores forem verdadeiros
Prof. Mauro JansenLinguagem de Programação
Linguagem C – parte 1 24
ambos valores forem verdadeiros
|| Operador OU. Retorna verdadeiro se pelo menos um for verdadeiro
! Operador NÃO. Retorna o contrário do valor informado.
![Page 25: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/25.jpg)
Exemplo com operadores e expressões
#Include <stdio.h>
Void main()
{
int a,b,c,d;
a=10;
b=22;
c=30;
d=40;
printf(“a+b = %d”,a+b); // soma a e b
Prof. Mauro JansenLinguagem de Programação
Linguagem C – parte 1 25
printf(“a+b = %d”,a+b); // soma a e b
printf(“a-b = %d”,a-b); // subtrai b de a
printf(“b%%a = %d”,b%a); // resto da divisão de b por a
a++; // incrementa a (mesmo que a=a+1)
b--; // decrementa b (mesmo que b=b-1)
c+=a; // soma a em c (mesmo que c=c+a)
d-=b; // soma e em d (mesmo que d=d+b)
printf(“a=%d, b=%d, c=%d, d=%d”,a,b,c,d);
}
OBS: No próximo bloco veremos exemplos com operadores relacionais e lógicos
![Page 26: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/26.jpg)
Estruturas de controle e fluxo em C
Prof. Mauro JansenLinguagem de Programação
Linguagem C – parte 1 26
fluxo em C
![Page 27: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/27.jpg)
Estrutura condicional ifEquivalente em pseudocódigo: se-senão-fimse
� Sintaxe:If(<condição>)
<bloco de comandos>
[else
<bloco de comandos 2>]
Prof. Mauro Jansen
� Se a condição for verdadeira, executa bloco de comandos 1, senão executa bloco de comandos 2
� OBS: Um bloco de comando composto por mais de um comando deve iniciar com { e terminar com }
� O bloco do else é opcionalLinguagem de ProgramaçãoLinguagem C – parte 1 27
<bloco de comandos 2>]
![Page 28: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/28.jpg)
Estrutura condicional if (se) -Exemplo
/*
Programa: calcular a média e mostrar situação
*/
#Include <stdio.h>
Void main()
{
float nota1,nota2,media; // declaração de variáveis
printf(“Digite a primeira nota: “);
Prof. Mauro JansenLinguagem de Programação
Linguagem C – parte 1 28
scanf(“%f”,¬a1);
printf(“Digite a segunda nota: “);
scanf(“%f”,¬a2);
media=(nota1+nota2)/2;
printf(“A média é: %f \n”,media);
if(media>=7)
printf(“Você está aprovado.\n”);
else
printf(“Você está de recuperação.\n”);
}
![Page 29: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/29.jpg)
Estrutura condicional switch-caseEquivalente pseudocódigo: escolha
� Sintaxe:Switch (<variável>)
{
case <constante1>:
<declaração1>;
break;
Prof. Mauro JansenLinguagem de Programação
Linguagem C – parte 1 29
break;
case <constante2>:
<declaração2>;
break;
case <constante_n>:
<declaraçãoN>;
break;
default:
<declaração default>
}
![Page 30: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/30.jpg)
Estrutura condicional switch-caseExemplo
#Include <stdio.h>
void main()
{
float n1,n2;
char op;
printf(“Digite um número: “);
scanf(“%f”,&n1);
printf(“Digite a operação (+,-,* ou /): “);
scanf(“%c”,&op);
printf(“Digite outro número: “);
scanf(“%f”,&n2);
Prof. Mauro JansenLinguagem de Programação
Linguagem C – parte 1 30
scanf(“%f”,&n2);
switch (op)
{
case ‘+’: printf(“Soma=%f”,n1+n2);
break;
case ‘-’: printf(“Soma=%f”,n1-n2);
break;
case ‘*’: printf(“Soma=%f”,n1*n2);
break;
case ‘/’: printf(“Soma=%f”,n1/n2);
break;
default: printf(“Você digitou uma operação inválida!”)
}
}
![Page 31: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/31.jpg)
Operador ternário
� Operador que permite simplificar tomadas de decisão simples
� Sintaxe:<expressão1> ? <expressão2> : <expressão3>
Prof. Mauro Jansen
� Exemplo:max=(a>b) ? a : b;
If (a>b)
max=a;
Else
max=b;
Equivale a:
![Page 32: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/32.jpg)
Estrutura de repetição forEquivalente pseudocódigo: para - fimpara
� É a repetição contada. Sintaxe:
� Inicialização: expressão de inicialização. Ex:
for(<inicialização>;<condição>;<incremento>)
<bloco de comandos>
Prof. Mauro Jansen
� Inicialização: expressão de inicialização. Ex: n=0
� Condição: expressão condição para continuar a repetição. Ex: n<=10
� Incremento: expressão de incremento. Ex: n++
Linguagem de ProgramaçãoLinguagem C – parte 1 32
![Page 33: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/33.jpg)
Estrutura de repetição forexemplo:
� Programa para contar de 1 a 100:#include <stdio.h>
{
int n;
for(n=1 ; n<=100 ; n++)
Prof. Mauro Jansen
for(n=1 ; n<=100 ; n++)
{
printf("Contando: %d\n",n);
}
}
![Page 34: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/34.jpg)
Estrutura de repetição while Equivalente pseudocódigo: enquanto–faça-fimenquanto
� Sintaxe:
� Inicia e repete o bloco de comandos
while(<condição>)
<bloco de comandos>
Prof. Mauro Jansen
� Inicia e repete o bloco de comandos enquanto a condição for verdadeira
� É a repetição com teste no início
Linguagem de ProgramaçãoLinguagem C – parte 1 34
![Page 35: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/35.jpg)
Estrutura de repetição whileExemplo:
� Soma quantidade indeterminada de números
#include <stdio.h>
int main()
{
float n=1,soma=0;
Prof. Mauro JansenLinguagem de Programação
Linguagem C – parte 1 35
float n=1,soma=0;
while (n!=0) {
printf("Digite um numero (zero=fim):");
scanf("%f",&n);
soma+=n;
}
printf("A soma dos numeros digitados é: %f",soma);
}
![Page 36: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/36.jpg)
Estrutura de repetição do..whileEquivalente pseudocódigo: repita - até
� Sintaxe:
� Executa o bloco de comando e repete
do
<bloco de comandos>
While(<condição>);
Prof. Mauro Jansen
� Executa o bloco de comando e repete enquanto a condição for verdadeira
� É a repetição com teste no final
Linguagem de ProgramaçãoLinguagem C – parte 1 36
![Page 37: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/37.jpg)
Estrutura de repetição do..whileExemplo:
� Mesmo anterior, agora com do..while:#include <stdio.h>
{
float n=0,soma=0;
do {
Prof. Mauro JansenLinguagem de Programação
Linguagem C – parte 1 37
do {
printf("Digite um numero (zero=fim):");
scanf("%f",&n);
soma+=n;
} while (n!=0);
printf("A soma dos numeros digitados é: %f\n",soma);
}
![Page 38: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/38.jpg)
Comandos que afetam as estruturas de repetição
� Comando break: interrompe a repetição, continuando após o bloco de comandos a ser repetido
� Comando continue: interrompe apenas a
Prof. Mauro Jansen
� Comando continue: interrompe apenas a repetição atual, voltando ao início do laço
Linguagem de ProgramaçãoLinguagem C – parte 1 38
![Page 39: Linguagem c parte 1](https://reader030.vdocuments.pub/reader030/viewer/2022020123/55845689d8b42afc4e8b545e/html5/thumbnails/39.jpg)
Atividades no DevC++
� PRÁTICA, muita PRÁTICA:� Testar os exemplos dos slides� Testar os exemplos da apostila� Resolver exercícios da apostila
Prof. Mauro Jansen
� Resolver exercícios da apostila� Resolver as atividades da semana
Linguagem de ProgramaçãoLinguagem C – parte 1 39