SlideShare une entreprise Scribd logo
1  sur  53
Télécharger pour lire hors ligne
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)

Contenu connexe

Tendances

Tendances (19)

Linguagem C clecioamerico
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamerico
 
Introdução à Linguagem C
Introdução à Linguagem CIntrodução à Linguagem C
Introdução à Linguagem C
 
Introduçãso a linguagem c
Introduçãso a linguagem cIntroduçãso a linguagem c
Introduçãso a linguagem c
 
Apresentação Linguagem C
Apresentação Linguagem CApresentação Linguagem C
Apresentação Linguagem C
 
Cet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducao
 
Algoritmos computacionais
Algoritmos computacionaisAlgoritmos computacionais
Algoritmos computacionais
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de Programação
 
5423 c ou c++
5423 c ou c++5423 c ou c++
5423 c ou c++
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
TDC2014 SP - C/C++ - Modularização de Código C
TDC2014 SP - C/C++ - Modularização de Código CTDC2014 SP - C/C++ - Modularização de Código C
TDC2014 SP - C/C++ - Modularização de Código C
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-c
 
Aula01
Aula01Aula01
Aula01
 
Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01
 
Programação em C
Programação em CProgramação em C
Programação em C
 
Linguagem C (UFRPE)
Linguagem C (UFRPE)Linguagem C (UFRPE)
Linguagem C (UFRPE)
 
Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 

En vedette

Microprocessadores ii arquitetura
Microprocessadores ii arquiteturaMicroprocessadores ii arquitetura
Microprocessadores ii arquiteturaMauro Pereira
 
Redes padroes e cabeamento
Redes padroes e cabeamentoRedes padroes e cabeamento
Redes padroes e cabeamentoMauro Pereira
 
Algoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmosAlgoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmosMauro Pereira
 
6 softwares de manutenção
6 softwares de manutenção6 softwares de manutenção
6 softwares de manutençãoMauro Pereira
 
Redes 4 endereçamento
Redes 4 endereçamentoRedes 4 endereçamento
Redes 4 endereçamentoMauro Pereira
 
Algoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosAlgoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosMauro Pereira
 
Tecnologia e turismo - Tecnologias de hardware
Tecnologia e turismo - Tecnologias de hardwareTecnologia e turismo - Tecnologias de hardware
Tecnologia e turismo - Tecnologias de hardwareMauro Pereira
 
Informática 1-conceitos e componentes
Informática  1-conceitos e componentesInformática  1-conceitos e componentes
Informática 1-conceitos e componentesMauro Pereira
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosMauro Pereira
 
Arquitetura de Computadores: Assembly
Arquitetura de Computadores: AssemblyArquitetura de Computadores: Assembly
Arquitetura de Computadores: AssemblyElaine Cecília Gatto
 

En vedette (13)

Microprocessadores ii arquitetura
Microprocessadores ii arquiteturaMicroprocessadores ii arquitetura
Microprocessadores ii arquitetura
 
Redes padroes e cabeamento
Redes padroes e cabeamentoRedes padroes e cabeamento
Redes padroes e cabeamento
 
Algoritmos Aula 01
Algoritmos Aula 01Algoritmos Aula 01
Algoritmos Aula 01
 
Algoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmosAlgoritmos e lp parte 5-subalgoritmos
Algoritmos e lp parte 5-subalgoritmos
 
6 softwares de manutenção
6 softwares de manutenção6 softwares de manutenção
6 softwares de manutenção
 
Redes 4 endereçamento
Redes 4 endereçamentoRedes 4 endereçamento
Redes 4 endereçamento
 
Algoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosAlgoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentos
 
Tecnologia e turismo - Tecnologias de hardware
Tecnologia e turismo - Tecnologias de hardwareTecnologia e turismo - Tecnologias de hardware
Tecnologia e turismo - Tecnologias de hardware
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Informática 1-conceitos e componentes
Informática  1-conceitos e componentesInformática  1-conceitos e componentes
Informática 1-conceitos e componentes
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registros
 
Arquitetura de Computadores: Assembly
Arquitetura de Computadores: AssemblyArquitetura de Computadores: Assembly
Arquitetura de Computadores: Assembly
 
Processadores
ProcessadoresProcessadores
Processadores
 

Similaire à Linguagem C Introdução

Introdução+à+linguagem+c
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+cThiago Freitas
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CJoberthSilva
 
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...Alex Camargo
 
Apostila de Linguagem C
Apostila de Linguagem CApostila de Linguagem C
Apostila de Linguagem CDaniel Barão
 
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling CAlgoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling CRodrigo Kiyoshi Saito
 
Algoritmos e Técnicas de Programação - Aula 03
Algoritmos e Técnicas de Programação - Aula 03Algoritmos e Técnicas de Programação - Aula 03
Algoritmos e Técnicas de Programação - Aula 03thomasdacosta
 
Introdução ao c++
Introdução ao c++Introdução ao c++
Introdução ao c++Jonas Silva
 
5. introducao a linguagem c
5. introducao a linguagem c5. introducao a linguagem c
5. introducao a linguagem cEugenio Caetano
 
Introdução a linguagem de programação C
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação CSchoolByte
 
Logica5 141120062157-conversion-gate02
Logica5 141120062157-conversion-gate02Logica5 141120062157-conversion-gate02
Logica5 141120062157-conversion-gate02Lucas Antonio
 
Aula01 introducao operacoes
Aula01   introducao operacoesAula01   introducao operacoes
Aula01 introducao operacoesYuri Passos
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação CJose Augusto Cintra
 

Similaire à Linguagem C Introdução (20)

Introdução+à+linguagem+c
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+c
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação C
 
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
Algoritmos e Programação: Apresentação da ferramenta de programação. Comandos...
 
Apostila de Linguagem C
Apostila de Linguagem CApostila de Linguagem C
Apostila de Linguagem C
 
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling CAlgoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
Algoritmos - Aula 10 A - Traducao Do Port Est Para Ling C
 
Algoritmos e Técnicas de Programação - Aula 03
Algoritmos e Técnicas de Programação - Aula 03Algoritmos e Técnicas de Programação - Aula 03
Algoritmos e Técnicas de Programação - Aula 03
 
Introdução ao c++
Introdução ao c++Introdução ao c++
Introdução ao c++
 
Atpaula3 150906041855-lva1-app6892
Atpaula3 150906041855-lva1-app6892Atpaula3 150906041855-lva1-app6892
Atpaula3 150906041855-lva1-app6892
 
5. introducao a linguagem c
5. introducao a linguagem c5. introducao a linguagem c
5. introducao a linguagem c
 
Apostila c
Apostila cApostila c
Apostila c
 
Infos algoritmo
Infos algoritmoInfos algoritmo
Infos algoritmo
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Ud2
Ud2Ud2
Ud2
 
Introdução a linguagem de programação C
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação C
 
Logica5 141120062157-conversion-gate02
Logica5 141120062157-conversion-gate02Logica5 141120062157-conversion-gate02
Logica5 141120062157-conversion-gate02
 
Linguagem em c
Linguagem em cLinguagem em c
Linguagem em c
 
E booklingc
E booklingcE booklingc
E booklingc
 
Aula01 introducao operacoes
Aula01   introducao operacoesAula01   introducao operacoes
Aula01 introducao operacoes
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 

Plus de Mauro Pereira

Programação Web - CSS
Programação Web - CSSProgramação Web - CSS
Programação Web - CSSMauro Pereira
 
Redes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redesRedes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redesMauro Pereira
 
Exercicio introducao a arquitetura de computadores
Exercicio    introducao a arquitetura de computadoresExercicio    introducao a arquitetura de computadores
Exercicio introducao a arquitetura de computadoresMauro Pereira
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresMauro Pereira
 
Sistemas de Numeracao
Sistemas de NumeracaoSistemas de Numeracao
Sistemas de NumeracaoMauro Pereira
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosMauro Pereira
 
Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1Mauro Pereira
 
Redes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeRedes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeMauro Pereira
 
Redes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redesRedes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redesMauro Pereira
 
Redes 1 introducao historico conceitos
Redes 1 introducao historico conceitosRedes 1 introducao historico conceitos
Redes 1 introducao historico conceitosMauro Pereira
 
4.1 softwares e configurações importantes
4.1 softwares e configurações importantes4.1 softwares e configurações importantes
4.1 softwares e configurações importantesMauro Pereira
 
Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2Mauro Pereira
 
Exercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolosExercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolosMauro Pereira
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmosMauro Pereira
 
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...Mauro Pereira
 
Guia para traducao algoritmos x l ps
Guia para traducao algoritmos x l psGuia para traducao algoritmos x l ps
Guia para traducao algoritmos x l psMauro Pereira
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Lista de exercicios   vetores, matrizes, registros e sub-algoritmosLista de exercicios   vetores, matrizes, registros e sub-algoritmos
Lista de exercicios vetores, matrizes, registros e sub-algoritmosMauro Pereira
 

Plus de Mauro Pereira (20)

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

Linguagem C Introdução

  • 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)