SlideShare uma empresa Scribd logo
Professor: Mauro Jansen
Microprocessadores II
Revisão de Linguagem de Programação:
Linguagem C
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1 2
Introdução à linguagem
C
Prof. Mauro Jansen
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 controle sobre o
hardware, para a programação do
sistema Unix
 Influência das linguagens BCPL e B
Linguagem de Programação
Linguagem C – parte 1 3
Prof. Mauro Jansen
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.
 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 linguagens
Linguagem de Programação
Linguagem C – parte 1 4
Prof. Mauro Jansen
Características
 É “case sensitive”: minúsculas e
maiúsculas fazem diferença
 Variável “nome” é diferente de “Nome”
 É compilada (gera arq.executável)
Linguagem de Programação
Linguagem C – parte 1 5
Prof. Mauro Jansen
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é-processador. Ex:
 #define
 #include
Linguagem de Programação
Linguagem C – parte 1 6
Prof. Mauro Jansen
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:
 #include: inclui um cabeçalho ou
outro arquivo-fonte no ponto onde
está a diretiva. Ex:
Linguagem de Programação
Linguagem 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
Prof. Mauro Jansen
Estrutura básica de um
programa em C
Linguagem de Programação
Linguagem C – parte 1 8
#Include <biblioteca1.h>
#Include <biblioteca2.h>
...
Void main()
{
<Declaração de variáveis>
...
<comandos>
...
}
Inclusão de arquivo de
bibliotecas de comandos
Função main(): é
obrigatória. É a primeira
função chamada quando
o programa é iniciado
Delimitadores de inicio e fim de
bloco de comandos
Prof. Mauro Jansen
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 //
 Várias linhas: usa-se o comando /* */
Linguagem de Programação
Linguagem C – parte 1 9
Prof. Mauro Jansen
Palavras reservadas
Linguagem de Programação
Linguagem C – parte 1 10
 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, typedef, union, unsigned,
void, volatile, while, etc.
Prof. Mauro Jansen
Exemplo de programa em C
Linguagem de Programação
Linguagem C – parte 1 11
/*
Programa: calcular a média entre duas notas
Autor...: prof.Mauro
*/
#Include <stdio.h>
Void main()
{
float nota1,nota2; // declaração de variáveis
printf(“Digite a primeira nota: “);
scanf(“%f”,&nota1);
printf(“Digite a segunda nota: “);
scanf(“%f”,&nota2)
printf(“A média é: %f”,(nota1+nota2)/2);
}
Prof. Mauro Jansen
Comando de saída: printf
 Sintaxe: printf(<string de controle>,<lista de argumentos>)
 Códigos de controle:
 Exemplos:
printf(“O valor de PI é %f”,3.1415);
printf(“Meu nome é %s e eu tenho %d anosn”,”João”,18);
Linguagem de Programação
Linguagem 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
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 %
n salta
linha
Prof. Mauro Jansen
Comando de entrada: scanf
 Sintaxe:
scanf(<string de controle>,<lista de argumentos>)
 Exemplo:
Linguagem de Programação
Linguagem 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);
}
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
Linguagem de Programação
Linguagem C – parte 1 14
Tipos de dados,
constantes, variáveis,
operadores e expressões
em C
Prof. Mauro Jansen
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 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ção
Linguagem C – parte 1 15
Prof. Mauro Jansen
Tipos de dados
Linguagem de Programação
Linguagem C – parte 1 16
Prof. Mauro Jansen
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 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ção
Linguagem C – parte 1 17
Prof. Mauro Jansen
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)
” 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)
Muito usado no
printf para saltar
para próxima
linha
Prof. Mauro Jansen
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
 Maiúsculas e minúsculas fazem
diferença
Linguagem de Programação
Linguagem C – parte 1 19
Prof. Mauro Jansen
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
 Exemplos:
Linguagem de Programação
Linguagem C – parte 1 20
<tipo de dado> <lista de variáveis>;
char ch,letra;
long cont;
Prof. Mauro Jansen
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 “=“ :
Linguagem de Programação
Linguagem C – parte 1 21
Char ch=‘D’;
Int num=123;
num=10;
Prof. Mauro Jansen
Operadores aritméticos
 Usados em operações matemáticas
Linguagem de Programação
Linguagem C – parte 1 22
Operador Ação
+ Soma
- Subtração ou troca de sinal
* 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
Prof. Mauro Jansen
Operadores relacionais
 Usados em comparações entre
valores
Linguagem de Programação
Linguagem C – parte 1 23
Operador Significado
> Maior
>= Maior ou igual
< Menor
<= Menor ou igual
== Igual
!= Diferente
Prof. Mauro Jansen
Operadores lógicos
 Usados em expressões lógicas
compostas
Linguagem de Programação
Linguagem C – parte 1 24
Operador Significado
&& Operador E. Retorna verdadeiro se
ambos valores forem verdadeiros
|| Operador OU. Retorna verdadeiro
se pelo menos um for verdadeiro
! Operador NÃO. Retorna o contrário
do valor informado.
Prof. Mauro Jansen
Exemplo com operadores e
expressões
Linguagem de Programação
Linguagem C – parte 1 25
#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
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
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1 26
Estruturas de controle e
fluxo em C
Prof. Mauro Jansen
Estrutura condicional if
Equivalente em pseudocódigo: se-senão-fimse
 Sintaxe:
 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 é opcional
Linguagem de Programação
Linguagem C – parte 1 27
If(<condição>)
<bloco de comandos>
[else
<bloco de comandos 2>]
Prof. Mauro Jansen
Estrutura condicional if (se) -
Exemplo
Linguagem de Programação
Linguagem C – parte 1 28
/*
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: “);
scanf(“%f”,&nota1);
printf(“Digite a segunda nota: “);
scanf(“%f”,&nota2);
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”);
}
Prof. Mauro Jansen
Estrutura condicional switch-case
Equivalente pseudocódigo: escolha
Linguagem de Programação
Linguagem C – parte 1 29
 Sintaxe:
Switch (<variável>)
{
case <constante1>:
<declaração1>;
break;
case <constante2>:
<declaração2>;
break;
case <constante_n>:
<declaraçãoN>;
break;
default:
<declaração default>
}
Prof. Mauro Jansen
Estrutura condicional switch-case
Exemplo
Linguagem de Programação
Linguagem C – parte 1 30
#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(“%s”,&op);
printf(“Digite outro número: “);
scanf(“%f”,&n2);
switch (op)
{
case ‘+’: printf(“Soma=%f”,n1+n2);
break;
case ‘-’: printf(“Subtração=%f”,n1-n2);
break;
case ‘*’: printf(“Multiplicação=%f”,n1*n2);
break;
case ‘/’: printf(“Divisão=%f”,n1/n2);
break;
default: printf(“Você digitou uma operação inválida!”);
}
}
Prof. Mauro Jansen
Operador ternário
 Operador que permite simplificar
tomadas de decisão simples
 Sintaxe:
 Exemplo:
<expressão1> ? <expressão2> : <expressão3>
max=(a>b) ? a : b;
If (a>b)
max=a;
Else
max=b;
Equivale a:
Prof. Mauro Jansen
Estrutura de repetição for
Equivalente pseudocódigo: para - fimpara
 É a repetição contada. Sintaxe:
 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ção
Linguagem C – parte 1 32
for(<inicialização>;<condição>;<incremento>)
<bloco de comandos>
Prof. Mauro Jansen
Estrutura de repetição for
exemplo:
 Programa para contar de 1 a 100:
#include <stdio.h>
{
int n;
for(n=1 ; n<=100 ; n++)
{
printf("Contando: %dn",n);
}
}
Prof. Mauro Jansen
Estrutura de repetição while
Equivalente pseudocódigo: enquanto–faça-
fimenquanto
 Sintaxe:
 Inicia e repete o bloco de comandos
enquanto a condição for verdadeira
 É a repetição com teste no início
Linguagem de Programação
Linguagem C – parte 1 34
while(<condição>)
<bloco de comandos>
Prof. Mauro Jansen
Estrutura de repetição while
Exemplo:
 Soma quantidade indeterminada de
números
Linguagem de Programação
Linguagem C – parte 1 35
#include <stdio.h>
int main()
{
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);
}
Prof. Mauro Jansen
Estrutura de repetição
do..while
Equivalente pseudocódigo: repita - até
 Sintaxe:
 Executa o bloco de comando e repete
enquanto a condição for verdadeira
 É a repetição com teste no final
Linguagem de Programação
Linguagem C – parte 1 36
do
<bloco de comandos>
While(<condição>);
Prof. Mauro Jansen
Estrutura de repetição
do..while
Exemplo: Mesmo anterior, agora com do..while:
Linguagem de Programação
Linguagem C – parte 1 37
#include <stdio.h>
{
float n=0,soma=0;
do {
printf("Digite um numero (zero=fim):");
scanf("%f",&n);
soma+=n;
} while (n!=0);
printf("A soma dos numeros digitados é: %fn",soma);
}
Prof. Mauro Jansen
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 repetição atual, voltando ao
início do laço
Linguagem de Programação
Linguagem C – parte 1 38
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 1 39
Procedimentos e funções
em C
Prof. Mauro Jansen
Procedimentos e funções
 Também chamados de sub-programas
ou rotinas, são programas que
executam uma função específica que
é acessada diversas vezes
 Procedimento: não retorna valor ao
programa que o chamou
 Função: retorna valor
 Exemplos: função fatorial (calcula o
fatorial de um número)
Linguagem de Programação
Linguagem C – parte 1 40
Prof. Mauro Jansen
Por que usar funções?
 Reaproveitar código já criado (por
você ou outros programadores)
 Evitar repetição de código dentro do
mesmo programa
 Separar o programa em blocos,
facilitando a leitura, o entendimento e
a manutenção
Linguagem de Programação
Linguagem C – parte 1 41
Prof. Mauro Jansen
Procedimentos e funções em
C
 A linguagem C tem apenas funções
 O tipo da função diz se ela retorna ou
não valor:
 Tipo void: função que não retorna valor
 Outros tipos básicos (int, float, etc.):
funções que retornam valor
Linguagem de Programação
Linguagem C – parte 1 42
Prof. Mauro Jansen
A função main()
 Como já vimos, todo programa em C
tem pelo menos uma função:
Linguagem de Programação
Linguagem C – parte 1 43
#Include <biblioteca1.h>
#Include <biblioteca2.h>
...
Void main()
{
<Declaração de variáveis>
...
<comandos>
...
}
Inclusão de arquivo de
bibliotecas de comandos
Função main(): é
obrigatória. É a primeira
função chamada quando
o programa é iniciado
Delimitadores de inicio e fim de
bloco de comandos
Prof. Mauro Jansen
Definindo funções em C
 Sintaxe:
 Os parâmetros são os dados que serão
usados pela função para realizar sua
operação ou retornar algum resultado
 A lista de parâmetros é opcional, mas se for
usada deve ser especificado o tipo de cada
parâmetro
Linguagem de Programação
Linguagem C – parte 1 44
tipo nome da função(tipo parâmetro1,...,tipo parâmetroN)
{
// comandos da função
}
Prof. Mauro Jansen
Chamada de funções
Linguagem de Programação
Linguagem C – parte 1 45
void main()
{
// comando anterior à chamada
funcao1(2,3)
// comando posterior à chamada
}
void funcao1(int a,int b)
{
// comandos da função
}
Prof. Mauro Jansen
Exemplo de função
Linguagem de Programação
Linguagem C – parte 1 46
#Include <stdio.h>
float media(float nota1,float nota2)
{
return( (nota1+nota2)/2);
}
void main()
{
printf(“%fn”,media(8,9));
}
Prof. Mauro Jansen
Linguagem de Programação
Linguagem C – parte 3 47
Ponteiros
Prof. Mauro Jansen
Memória e endereços
 Local de armazenamento de
informações binárias
 Podem ser circuitos semicondutores,
mídias magnéticas, óticas, etc.
 Cada posição de memória é
identificada por um ENDEREÇO
 Endereçamento é o ato de acessar
um dado em uma posição de memória
(para isso precisamos especificar o
endereço)
Linguagem de Programação
Linguagem C – parte 3 48
Prof. Mauro Jansen
Memória e endereços
Linguagem de Programação
Linguagem C – parte 3 49
Endereço Conteúd
o
0000h 00
0001h EB
0002h 29
...
FFFFh 00
Exemplo de bloco de memória com 64K posições (64KB
O conteúdo de
cada posição de
memória pode ser
um dado
(numérico ou
caractere) ou uma
instrução
Os endereços
normalmente são
identificados por números
hexadecimais (h)
Prof. Mauro Jansen
Ponteiros
 Toda variável é armazenada na
memória do computador em uma
posição que possui um ENDEREÇO
 Um ponteiro é uma variável especial
que guarda um endereço de memória
 Com ponteiros, podemos acessar e
modificar dados diretamente na
memória
Linguagem de Programação
Linguagem C – parte 3 50
Ponteiro é um dos recursos que permitem
à linguagem C acessar os recursos do
hardware
Prof. Mauro Jansen
Operadores & e *
 Operador & (endereço de)
 Sintaxe: &<variável>
 Uso: retorna o endereço de uma variável
 Exemplo: scanf(“%d”,&num)
 Usado para inicializar ponteiros.
 Operador * (conteúdo de)
 Sintaxe: *<variável tipo ponteiro>
 Uso: retorna o conteúdo do endereço de
memória guardado na variável, que deve ser
do tipo ponteiro
Linguagem de Programação
Linguagem C – parte 3 51
Prof. Mauro Jansen
Declarando ponteiros
 Sintaxe: <tipo> *<nome da
variável>;
 Exemplo:#include <stdio.h>
int main()
{
int x=15;
int *pInt; // ponteiro para variável de tipo inteiro
pInt=&x;
printf("Conteudo de x: %dn",*pInt); // conteúdo de x
printf("Endereço de x: %dn",pInt); // endereço de x
}
Linguagem de Programação
Linguagem C – parte 3 52
Observe que todo ponteiro deve ter o
“*” (asterisco) antes do nome
Prof. Mauro Jansen
Ponteiros – ilustração do
funcionamento
Linguagem de Programação
Linguagem C – parte 3 53
Endereç
o
Variáve
l
Conteúdo
0000h 00
0001h EB
02F0h c ‘A’
...
FFFFh 00
Declaração e inicialização
de uma variável c tipo
char, que ficou no
endereço 2F0
char c=‘A’;
char *pc=&c;
printf("%c",*pc);
O endereço da
variável cé
guardado no
ponteiro *pc
O comando printf
acessa o conteúdo do
endereço guardado
em *pc (que é o valor
da variável c)

Mais conteúdo relacionado

PDF
Linguagem c parte 1
PDF
Linguagem c parte 2
PDF
Apostila c
PDF
Algoritmos e lp parte3-pseudocódigo
PDF
Introdução a linguagem c karen lowhany
PPT
Curso de Linguagem C
PPT
Introdução a Linguagem C
PPT
A linguagem de programação c
Linguagem c parte 1
Linguagem c parte 2
Apostila c
Algoritmos e lp parte3-pseudocódigo
Introdução a linguagem c karen lowhany
Curso de Linguagem C
Introdução a Linguagem C
A linguagem de programação c

Mais procurados (19)

PPT
Linguagem C clecioamerico
PPTX
Introdução à Linguagem C
PDF
Introduçãso a linguagem c
PDF
Apresentação Linguagem C
PPT
Cet P Sistemas Linguagem C Introducao
PDF
Algoritmos computacionais
PDF
Algoritmos e Lógica de Programação
PDF
5423 c ou c++
PPTX
PDF
Linguagem c
PPTX
TDC2014 SP - C/C++ - Modularização de Código C
PDF
Introdução a Linguagem de Programação C
PDF
Apostila de-introdução-à-linguagem-c
PPTX
Aula01
ODP
Algoritmos C/C++ - Aula 01
PPSX
Programação em C
PDF
Linguagem C (UFRPE)
PPTX
Programando em C++ // Estrutura Básica
PDF
Apostila linguagem c
Linguagem C clecioamerico
Introdução à Linguagem C
Introduçãso a linguagem c
Apresentação Linguagem C
Cet P Sistemas Linguagem C Introducao
Algoritmos computacionais
Algoritmos e Lógica de Programação
5423 c ou c++
Linguagem c
TDC2014 SP - C/C++ - Modularização de Código C
Introdução a Linguagem de Programação C
Apostila de-introdução-à-linguagem-c
Aula01
Algoritmos C/C++ - Aula 01
Programação em C
Linguagem C (UFRPE)
Programando em C++ // Estrutura Básica
Apostila linguagem c
Anúncio

Destaque (13)

PDF
Microprocessadores ii arquitetura
PDF
Redes padroes e cabeamento
PPT
Algoritmos Aula 01
PDF
Algoritmos e lp parte 5-subalgoritmos
PDF
6 softwares de manutenção
PDF
Redes 4 endereçamento
PDF
Algoritmos e lp parte 2-fundamentos
PDF
Tecnologia e turismo - Tecnologias de hardware
PPTX
Linguagem da programação
PDF
Informática 1-conceitos e componentes
PDF
Algoritmos e lp parte 4-vetores matrizes e registros
PPTX
Arquitetura de Computadores: Assembly
PPTX
Processadores
Microprocessadores ii arquitetura
Redes padroes e cabeamento
Algoritmos Aula 01
Algoritmos e lp parte 5-subalgoritmos
6 softwares de manutenção
Redes 4 endereçamento
Algoritmos e lp parte 2-fundamentos
Tecnologia e turismo - Tecnologias de hardware
Linguagem da programação
Informática 1-conceitos e componentes
Algoritmos e lp parte 4-vetores matrizes e registros
Arquitetura de Computadores: Assembly
Processadores
Anúncio

Semelhante a Microprocessadores ii revisão de linguagem de programação (parte2) (20)

PDF
Introdução+à+linguagem+c
PPT
Curso Completo de Linguagem de Programação C
PDF
Linguagem_C.pdf
PPT
Aula 14 - Entrada e Saida em linguagem C.ppt
PDF
Aula 14 - Entrada e Saida em linguagem C.pdf
PDF
Introdução à Linguagem de Programação C
PPTX
5. introducao a linguagem c
PDF
Introdução ao c++
PDF
Linguagem C - Introdução com conceitos da Linguagem C
PPT
Aula5 introducao c
PPT
Aula5 introducao c
PPSX
Introdução a linguagem de programação C
PDF
Aula01 introducao operacoes
PPTX
Introdução a Linguagem C.pptx [Reparado].pptx
PPTX
Introdução a Linguagem C - analise básica.pptx
PDF
Apostila linguagem c
PDF
Apostila linguagem c
PDF
E booklingc
PPTX
Linguagem C Entendendo a Programação
PDF
Aula introdutória - Introducao a linguagemn C.pdf
Introdução+à+linguagem+c
Curso Completo de Linguagem de Programação C
Linguagem_C.pdf
Aula 14 - Entrada e Saida em linguagem C.ppt
Aula 14 - Entrada e Saida em linguagem C.pdf
Introdução à Linguagem de Programação C
5. introducao a linguagem c
Introdução ao c++
Linguagem C - Introdução com conceitos da Linguagem C
Aula5 introducao c
Aula5 introducao c
Introdução a linguagem de programação C
Aula01 introducao operacoes
Introdução a Linguagem C.pptx [Reparado].pptx
Introdução a Linguagem C - analise básica.pptx
Apostila linguagem c
Apostila linguagem c
E booklingc
Linguagem C Entendendo a Programação
Aula introdutória - Introducao a linguagemn C.pdf

Mais de Mauro Pereira (20)

PDF
Programação Web - CSS
PDF
Redes 7 ferramentas para montagem de redes
PDF
Exercicio introducao a arquitetura de computadores
PDF
Introdução à Arquitetura de Computadores
PDF
Sistemas de Numeracao
PDF
Lógica binária, potas lógicas e circuitos lógicos
PDF
Trabalho para nota da etapa 2 2017.1
PDF
Redes 6 equipamentos ativos da rede
PDF
Redes 5 cabeamento
PDF
Redes 3 protocolos
PDF
Redes 2 padronização e arquitetura de redes
PDF
Redes 1 introducao historico conceitos
PDF
4.1 softwares e configurações importantes
PDF
Trabalho para nota da etapa 2 2015.2
PDF
Exercicio 1 - conceitos camadas e protocolos
PDF
Guia prático para criar algoritmos
PDF
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...
PDF
Guia para traducao algoritmos x l ps
PDF
Lista de exercicios algoritmos resolvida-
PDF
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Programação Web - CSS
Redes 7 ferramentas para montagem de redes
Exercicio introducao a arquitetura de computadores
Introdução à Arquitetura de Computadores
Sistemas de Numeracao
Lógica binária, potas lógicas e circuitos lógicos
Trabalho para nota da etapa 2 2017.1
Redes 6 equipamentos ativos da rede
Redes 5 cabeamento
Redes 3 protocolos
Redes 2 padronização e arquitetura de redes
Redes 1 introducao historico conceitos
4.1 softwares e configurações importantes
Trabalho para nota da etapa 2 2015.2
Exercicio 1 - conceitos camadas e protocolos
Guia prático para criar algoritmos
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...
Guia para traducao algoritmos x l ps
Lista de exercicios algoritmos resolvida-
Lista de exercicios vetores, matrizes, registros e sub-algoritmos

Último (7)

PDF
Informática Malware e Ataques para concurso
PPTX
AULA_HIPERTENSÃmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmO_EXERCÍCIO_12042...
PDF
Informática Hardware sjxsehcuchejheieeidhedehiedhed
PDF
manual do controle câmara- EWPlus_961.pdf
PDF
Informática Linux para concurso públicos
PPTX
Perguntas e respostas.pptx Informatica aplicada
PDF
Informática Sistema Operacionais para concurso
Informática Malware e Ataques para concurso
AULA_HIPERTENSÃmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmO_EXERCÍCIO_12042...
Informática Hardware sjxsehcuchejheieeidhedehiedhed
manual do controle câmara- EWPlus_961.pdf
Informática Linux para concurso públicos
Perguntas e respostas.pptx Informatica aplicada
Informática Sistema Operacionais para concurso

Microprocessadores ii revisão de linguagem de programação (parte2)

  • 1. Professor: Mauro Jansen Microprocessadores II Revisão de Linguagem de Programação: Linguagem C
  • 2. Prof. Mauro Jansen Linguagem de Programação Linguagem C – parte 1 2 Introdução à linguagem C
  • 3. Prof. Mauro Jansen 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 controle sobre o hardware, para a programação do sistema Unix  Influência das linguagens BCPL e B Linguagem de Programação Linguagem C – parte 1 3
  • 4. Prof. Mauro Jansen 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.  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 linguagens Linguagem de Programação Linguagem C – parte 1 4
  • 5. Prof. Mauro Jansen Características  É “case sensitive”: minúsculas e maiúsculas fazem diferença  Variável “nome” é diferente de “Nome”  É compilada (gera arq.executável) Linguagem de Programação Linguagem C – parte 1 5
  • 6. Prof. Mauro Jansen 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é-processador. Ex:  #define  #include Linguagem de Programação Linguagem C – parte 1 6
  • 7. Prof. Mauro Jansen 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:  #include: inclui um cabeçalho ou outro arquivo-fonte no ponto onde está a diretiva. Ex: Linguagem de Programação Linguagem 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
  • 8. Prof. Mauro Jansen Estrutura básica de um programa em C Linguagem de Programação Linguagem C – parte 1 8 #Include <biblioteca1.h> #Include <biblioteca2.h> ... Void main() { <Declaração de variáveis> ... <comandos> ... } Inclusão de arquivo de bibliotecas de comandos Função main(): é obrigatória. É a primeira função chamada quando o programa é iniciado Delimitadores de inicio e fim de bloco de comandos
  • 9. Prof. Mauro Jansen 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 //  Várias linhas: usa-se o comando /* */ Linguagem de Programação Linguagem C – parte 1 9
  • 10. Prof. Mauro Jansen Palavras reservadas Linguagem de Programação Linguagem C – parte 1 10  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, typedef, union, unsigned, void, volatile, while, etc.
  • 11. Prof. Mauro Jansen Exemplo de programa em C Linguagem de Programação Linguagem C – parte 1 11 /* Programa: calcular a média entre duas notas Autor...: prof.Mauro */ #Include <stdio.h> Void main() { float nota1,nota2; // declaração de variáveis printf(“Digite a primeira nota: “); scanf(“%f”,&nota1); printf(“Digite a segunda nota: “); scanf(“%f”,&nota2) printf(“A média é: %f”,(nota1+nota2)/2); }
  • 12. Prof. Mauro Jansen Comando de saída: printf  Sintaxe: printf(<string de controle>,<lista de argumentos>)  Códigos de controle:  Exemplos: printf(“O valor de PI é %f”,3.1415); printf(“Meu nome é %s e eu tenho %d anosn”,”João”,18); Linguagem de Programação Linguagem 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 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 % n salta linha
  • 13. Prof. Mauro Jansen Comando de entrada: scanf  Sintaxe: scanf(<string de controle>,<lista de argumentos>)  Exemplo: Linguagem de Programação Linguagem 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); } 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 &
  • 14. Prof. Mauro Jansen Linguagem de Programação Linguagem C – parte 1 14 Tipos de dados, constantes, variáveis, operadores e expressões em C
  • 15. Prof. Mauro Jansen 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 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ção Linguagem C – parte 1 15
  • 16. Prof. Mauro Jansen Tipos de dados Linguagem de Programação Linguagem C – parte 1 16
  • 17. Prof. Mauro Jansen 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 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ção Linguagem C – parte 1 17
  • 18. Prof. Mauro Jansen 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) ” 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) Muito usado no printf para saltar para próxima linha
  • 19. Prof. Mauro Jansen 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  Maiúsculas e minúsculas fazem diferença Linguagem de Programação Linguagem C – parte 1 19
  • 20. Prof. Mauro Jansen 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  Exemplos: Linguagem de Programação Linguagem C – parte 1 20 <tipo de dado> <lista de variáveis>; char ch,letra; long cont;
  • 21. Prof. Mauro Jansen 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 “=“ : Linguagem de Programação Linguagem C – parte 1 21 Char ch=‘D’; Int num=123; num=10;
  • 22. Prof. Mauro Jansen Operadores aritméticos  Usados em operações matemáticas Linguagem de Programação Linguagem C – parte 1 22 Operador Ação + Soma - Subtração ou troca de sinal * 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
  • 23. Prof. Mauro Jansen Operadores relacionais  Usados em comparações entre valores Linguagem de Programação Linguagem C – parte 1 23 Operador Significado > Maior >= Maior ou igual < Menor <= Menor ou igual == Igual != Diferente
  • 24. Prof. Mauro Jansen Operadores lógicos  Usados em expressões lógicas compostas Linguagem de Programação Linguagem C – parte 1 24 Operador Significado && Operador E. Retorna verdadeiro se ambos valores forem verdadeiros || Operador OU. Retorna verdadeiro se pelo menos um for verdadeiro ! Operador NÃO. Retorna o contrário do valor informado.
  • 25. Prof. Mauro Jansen Exemplo com operadores e expressões Linguagem de Programação Linguagem C – parte 1 25 #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 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
  • 26. Prof. Mauro Jansen Linguagem de Programação Linguagem C – parte 1 26 Estruturas de controle e fluxo em C
  • 27. Prof. Mauro Jansen Estrutura condicional if Equivalente em pseudocódigo: se-senão-fimse  Sintaxe:  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 é opcional Linguagem de Programação Linguagem C – parte 1 27 If(<condição>) <bloco de comandos> [else <bloco de comandos 2>]
  • 28. Prof. Mauro Jansen Estrutura condicional if (se) - Exemplo Linguagem de Programação Linguagem C – parte 1 28 /* 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: “); scanf(“%f”,&nota1); printf(“Digite a segunda nota: “); scanf(“%f”,&nota2); 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”); }
  • 29. Prof. Mauro Jansen Estrutura condicional switch-case Equivalente pseudocódigo: escolha Linguagem de Programação Linguagem C – parte 1 29  Sintaxe: Switch (<variável>) { case <constante1>: <declaração1>; break; case <constante2>: <declaração2>; break; case <constante_n>: <declaraçãoN>; break; default: <declaração default> }
  • 30. Prof. Mauro Jansen Estrutura condicional switch-case Exemplo Linguagem de Programação Linguagem C – parte 1 30 #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(“%s”,&op); printf(“Digite outro número: “); scanf(“%f”,&n2); switch (op) { case ‘+’: printf(“Soma=%f”,n1+n2); break; case ‘-’: printf(“Subtração=%f”,n1-n2); break; case ‘*’: printf(“Multiplicação=%f”,n1*n2); break; case ‘/’: printf(“Divisão=%f”,n1/n2); break; default: printf(“Você digitou uma operação inválida!”); } }
  • 31. Prof. Mauro Jansen Operador ternário  Operador que permite simplificar tomadas de decisão simples  Sintaxe:  Exemplo: <expressão1> ? <expressão2> : <expressão3> max=(a>b) ? a : b; If (a>b) max=a; Else max=b; Equivale a:
  • 32. Prof. Mauro Jansen Estrutura de repetição for Equivalente pseudocódigo: para - fimpara  É a repetição contada. Sintaxe:  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ção Linguagem C – parte 1 32 for(<inicialização>;<condição>;<incremento>) <bloco de comandos>
  • 33. Prof. Mauro Jansen Estrutura de repetição for exemplo:  Programa para contar de 1 a 100: #include <stdio.h> { int n; for(n=1 ; n<=100 ; n++) { printf("Contando: %dn",n); } }
  • 34. Prof. Mauro Jansen Estrutura de repetição while Equivalente pseudocódigo: enquanto–faça- fimenquanto  Sintaxe:  Inicia e repete o bloco de comandos enquanto a condição for verdadeira  É a repetição com teste no início Linguagem de Programação Linguagem C – parte 1 34 while(<condição>) <bloco de comandos>
  • 35. Prof. Mauro Jansen Estrutura de repetição while Exemplo:  Soma quantidade indeterminada de números Linguagem de Programação Linguagem C – parte 1 35 #include <stdio.h> int main() { 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); }
  • 36. Prof. Mauro Jansen Estrutura de repetição do..while Equivalente pseudocódigo: repita - até  Sintaxe:  Executa o bloco de comando e repete enquanto a condição for verdadeira  É a repetição com teste no final Linguagem de Programação Linguagem C – parte 1 36 do <bloco de comandos> While(<condição>);
  • 37. Prof. Mauro Jansen Estrutura de repetição do..while Exemplo: Mesmo anterior, agora com do..while: Linguagem de Programação Linguagem C – parte 1 37 #include <stdio.h> { float n=0,soma=0; do { printf("Digite um numero (zero=fim):"); scanf("%f",&n); soma+=n; } while (n!=0); printf("A soma dos numeros digitados é: %fn",soma); }
  • 38. Prof. Mauro Jansen 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 repetição atual, voltando ao início do laço Linguagem de Programação Linguagem C – parte 1 38
  • 39. Prof. Mauro Jansen Linguagem de Programação Linguagem C – parte 1 39 Procedimentos e funções em C
  • 40. Prof. Mauro Jansen Procedimentos e funções  Também chamados de sub-programas ou rotinas, são programas que executam uma função específica que é acessada diversas vezes  Procedimento: não retorna valor ao programa que o chamou  Função: retorna valor  Exemplos: função fatorial (calcula o fatorial de um número) Linguagem de Programação Linguagem C – parte 1 40
  • 41. Prof. Mauro Jansen Por que usar funções?  Reaproveitar código já criado (por você ou outros programadores)  Evitar repetição de código dentro do mesmo programa  Separar o programa em blocos, facilitando a leitura, o entendimento e a manutenção Linguagem de Programação Linguagem C – parte 1 41
  • 42. Prof. Mauro Jansen Procedimentos e funções em C  A linguagem C tem apenas funções  O tipo da função diz se ela retorna ou não valor:  Tipo void: função que não retorna valor  Outros tipos básicos (int, float, etc.): funções que retornam valor Linguagem de Programação Linguagem C – parte 1 42
  • 43. Prof. Mauro Jansen A função main()  Como já vimos, todo programa em C tem pelo menos uma função: Linguagem de Programação Linguagem C – parte 1 43 #Include <biblioteca1.h> #Include <biblioteca2.h> ... Void main() { <Declaração de variáveis> ... <comandos> ... } Inclusão de arquivo de bibliotecas de comandos Função main(): é obrigatória. É a primeira função chamada quando o programa é iniciado Delimitadores de inicio e fim de bloco de comandos
  • 44. Prof. Mauro Jansen Definindo funções em C  Sintaxe:  Os parâmetros são os dados que serão usados pela função para realizar sua operação ou retornar algum resultado  A lista de parâmetros é opcional, mas se for usada deve ser especificado o tipo de cada parâmetro Linguagem de Programação Linguagem C – parte 1 44 tipo nome da função(tipo parâmetro1,...,tipo parâmetroN) { // comandos da função }
  • 45. Prof. Mauro Jansen Chamada de funções Linguagem de Programação Linguagem C – parte 1 45 void main() { // comando anterior à chamada funcao1(2,3) // comando posterior à chamada } void funcao1(int a,int b) { // comandos da função }
  • 46. Prof. Mauro Jansen Exemplo de função Linguagem de Programação Linguagem C – parte 1 46 #Include <stdio.h> float media(float nota1,float nota2) { return( (nota1+nota2)/2); } void main() { printf(“%fn”,media(8,9)); }
  • 47. Prof. Mauro Jansen Linguagem de Programação Linguagem C – parte 3 47 Ponteiros
  • 48. Prof. Mauro Jansen Memória e endereços  Local de armazenamento de informações binárias  Podem ser circuitos semicondutores, mídias magnéticas, óticas, etc.  Cada posição de memória é identificada por um ENDEREÇO  Endereçamento é o ato de acessar um dado em uma posição de memória (para isso precisamos especificar o endereço) Linguagem de Programação Linguagem C – parte 3 48
  • 49. Prof. Mauro Jansen Memória e endereços Linguagem de Programação Linguagem C – parte 3 49 Endereço Conteúd o 0000h 00 0001h EB 0002h 29 ... FFFFh 00 Exemplo de bloco de memória com 64K posições (64KB O conteúdo de cada posição de memória pode ser um dado (numérico ou caractere) ou uma instrução Os endereços normalmente são identificados por números hexadecimais (h)
  • 50. Prof. Mauro Jansen Ponteiros  Toda variável é armazenada na memória do computador em uma posição que possui um ENDEREÇO  Um ponteiro é uma variável especial que guarda um endereço de memória  Com ponteiros, podemos acessar e modificar dados diretamente na memória Linguagem de Programação Linguagem C – parte 3 50 Ponteiro é um dos recursos que permitem à linguagem C acessar os recursos do hardware
  • 51. Prof. Mauro Jansen Operadores & e *  Operador & (endereço de)  Sintaxe: &<variável>  Uso: retorna o endereço de uma variável  Exemplo: scanf(“%d”,&num)  Usado para inicializar ponteiros.  Operador * (conteúdo de)  Sintaxe: *<variável tipo ponteiro>  Uso: retorna o conteúdo do endereço de memória guardado na variável, que deve ser do tipo ponteiro Linguagem de Programação Linguagem C – parte 3 51
  • 52. Prof. Mauro Jansen Declarando ponteiros  Sintaxe: <tipo> *<nome da variável>;  Exemplo:#include <stdio.h> int main() { int x=15; int *pInt; // ponteiro para variável de tipo inteiro pInt=&x; printf("Conteudo de x: %dn",*pInt); // conteúdo de x printf("Endereço de x: %dn",pInt); // endereço de x } Linguagem de Programação Linguagem C – parte 3 52 Observe que todo ponteiro deve ter o “*” (asterisco) antes do nome
  • 53. Prof. Mauro Jansen Ponteiros – ilustração do funcionamento Linguagem de Programação Linguagem C – parte 3 53 Endereç o Variáve l Conteúdo 0000h 00 0001h EB 02F0h c ‘A’ ... FFFFh 00 Declaração e inicialização de uma variável c tipo char, que ficou no endereço 2F0 char c=‘A’; char *pc=&c; printf("%c",*pc); O endereço da variável cé guardado no ponteiro *pc O comando printf acessa o conteúdo do endereço guardado em *pc (que é o valor da variável c)