Vous êtes sur la page 1sur 49

Programação I

A base da Linguagem C
Prof. Raphael Baltar
Raphael Baltar 2

Características da Linguagem C
• Flexibilidade: C não apresenta limitações inerentes que impeçam seu uso em
quase qualquer área de aplicação, com quase qualquer técnica de
programação.

• Eficiente: a Semântica de C é em muitos aspectos próximos ao “baixo nível”,


ou seja, muitas de sua construções espelham-se diretamente aspectos de
computadores tradicionais, permitindo facilmente um uso eficiente dos
recursos da máquinas.

• Disponibilidade: é provavelmente a linguagem mais difundida ao mundo ,

• Portabilidade: programa C são bastante dependentes da bibliotecas


utilizadas e o porte de um programa C de uma plataforma para outra não é
automático nem necessariamente fácil. Porém é possível, com mínimo de
disciplina e organização, a escrita de programas facilmente portáveis.
Raphael Baltar 3

Estrutura do programa
• Cabeçalho contendo as diretivas de compiladores onde se definem o
valor de constantes simbólicas, declaração de variáveis globais, inclusão
de bibliotecas, declaração de rotinas, etc;

• Um bloco de instruções principal e outros blocos de rotinas;

• Documentação do programa: comentários


Raphael Baltar 4

Estrutura do programa
Raphael Baltar 5

Estruturas de controle

• Normalmente, as instruções em um programa são executadas uma após a outra,


na ordem em que foram escritas. Isto é chamado execução sequencial;

• O trabalho de Bohm e Jacopini demonstrou que todos os programas podiam ser


escritos em termos de apenas três estruturas de controle:
▫ Sequência
▫ Seleção (IF, IF/Else, Switch)
▫ Repetição (While, Do/While, For)
Raphael Baltar 6

IDE (Integrated Development Environment)


Raphael Baltar 7

O primeiro programa

• Escrever o programa mais conhecido em C:

#include <stdio.h>

main() {
printf("Hello World");
}
Raphael Baltar 8

O primeiro programa

• O mesmo programa poderia ser escrito da seguinte forma:

#include <stdio.h>

main() {
printf("Hello");
printf(" ");
printf("World");
}
Raphael Baltar 9

O primeiro programa

• O mesmo programa poderia ainda ser escrito da seguinte forma:

#include <stdio.h>

main () {
printf(
"Hello“
);
printf(" ");
printf( "World“ );
}
Raphael Baltar 10

O primeiro programa

• Quando escrevemos duas vezes a mensagem percebemos que o texto é escrito


junto com o anterior.

#include <stdio.h>

main() {
printf("Hello World");
printf("Hello World");
}
Raphael Baltar 11

O primeiro programa

• Para solucionar este problema usamos o comando New Line que em C é


representado pelo símbolo \n

#include <stdio.h>

main() {
printf("Hello World\n");
printf("Hello World");
}
Raphael Baltar 12

O caractere especial \
Raphael Baltar 13

/* Comentários */

• São informações e notas sobre o código escrito, úteis para organização e


documentação do programa;

• Comentários não são interpretados pelo compilador;

• Um comentário em C é qualquer conjunto de caracteres compreendido entre os


sinais /* e */

• O sinal \\ pode ser usado ao final de uma linha para comentar apenas aquela
linha
Raphael Baltar 14

/* Comentários */

• Uma linha: “//”;


• Em bloco: “/*” e “*/”.

/*
UNIVASF – CENEL
Microcontroladores & Microprocessadores
Este é um comentário em bloco
*/

char contador; // Este é um comentário de uma


Raphael Baltar 15

/* Comentários */

• Exemplo de cabeçalho do programa:


/*******************************
* PROGRAMA: Helloworld.c *
* AUTOR: Raphael Baltar *
* Versão: 1.0 *
* Data: 08/08/2017 *
*******************************/
#include <stdio.h>

int main() {
printf("Hello World"); \\ Imprime a frase de saudação
return 0;
}
Raphael Baltar 16

Exercícios

• Identifique os erros nos códigos a seguir:


Raphael Baltar 17

Exercícios

• Identifique os erros nos códigos a seguir:


Raphael Baltar 18

Exercícios

• Identifique os erros nos códigos a seguir:


Raphael Baltar 19

Exercícios

• Identifique os erros nos códigos a seguir:


Raphael Baltar 20

Exercícios

• Escrever um código em C que apresente a seguinte saída:

C
Is the greatest
Language

• Faça o mesmo código em apenas uma linha.

• Faça um código que apresente a seguinte saída:

Programar é “Molezinha”
Raphael Baltar 21

Variáveis
• Uma variável é uma posição de memória que pode ser identificada
através de um nome, e é usada para armazenar informações.

• Todas as variáveis devem ser declaradas antes de ser usadas;

• A declaração de variáveis pode ser feitas dentro de funções (variáveis


locais), ou fora de todas as funções (variáveis globais)

• O conteúdo de uma variável pode ser alterado através de um comando


de atribuição.

• A declaração de variáveis é feita utilizando a seguinte sintaxe:


Raphael Baltar 22

Identificadores

• Palavras usadas para declarar uma constante ou uma variável;


• Regras:
▫ Não pode conter símbolos gráficos, com exceção do underline;
▫ Não pode haver acentuação gráfica
▫ Não pode não ser iniciado por número;
▫ Não pode ser uma palavra reservada.
Raphael Baltar 23

Identificadores

• Existem algumas palavras reservadas, comuns a todos os compiladores:


Raphael Baltar 24

Exercício

• Indique quais são as variáveis que tem nomes corretos e incorretos na seguinte
lista:
Raphael Baltar 25

Declaração de variáveis

• Quando uma variável é declarada, estamos solicitando ao compilador


para reservar um espaço de memória para armazena-la. Esse espaço
passa a ser referenciado através do nome da variável.

• Formas de declarar:
tipo var_1;
tipo var_2;
...
tipo var_n;
OU
tipo var_1, var_2, ..., var_n;
Raphael Baltar 26

Atribuição

• Quando uma variável é declarada ela assume um valor aleatório,


resultado do estado que a memória possuia.

• Para atribuir um valor à variável utilizamos o operador de atriuição =

Variável = expressão;

• Exemplos:

num = -35;

a = b = c = d = e = 10;
Raphael Baltar 27

Inicialização de variáveis

• Uma variável pode ser automaticamente inicializada em sua declaração:

• Exemplos:

void main( )
{
int contador = 0; //contador de uso geral
char temp_1, temp_2 = ‘A’; //variáveis auxiliares
...
}
Raphael Baltar 28

Tipos de dados básicos

• Em nosso dia-dia, temos a noção de que tipos diferentes de materiais devem ser
armazenados em recipientes diferentes;

• Em C, os diversos recipientes correspondem aos tipos de dados;

• Sempre que desejamos guardar um valor que, por qualquer razão, não seja fixo, devemos
fazê-lo utilizando variáveis.
Raphael Baltar 29

Variáveis e tipos de dados


TIPO Tamanho em Bits Faixa de Valores
char 1 -127 a 127
unsigned char 1 0 a 255
signed char 1 -127 a 127
int 4 -2.147.483.648 a 2.147.483.647
unsigned int 4 0 a 4.294.967.295
signed int 4 -2.147.483.648 a 2.147.483.647
short int 2 -32.768 a 32.767
unsigned short int 2 0 a 65.535
signed short int 2 -32.768 a 32.767
long int 4 -2.147.483.648 a 2.147.483.647
signed long int 4 -2.147.483.648 a 2.147.483.647
unsigned long int 4 0 a 4.294.967.295
float 4 Seis digitos de precisão
double 8 Dez digitos de precisão
long double 10 Dez digitos de precisão
Raphael Baltar 30

Funções básicas de entrada e saída de dados

• As trocas de informação entre o computador e o usuário são chamadas entrada e


saída. Entrada é a informação fornecida a um programa; saída é a informação
fornecida pelo programa.

• Em C, toda entrada e saída é feita da mesma maneira não importando o


dispositivo (teclado, terminal, arquivo, etc.).

• Em C, as funções da biblioteca padrão para entrada e saída estão declaradas no


cabeçalho stdio.h.
Raphael Baltar 31

Printf()

• Exibe uma saída formatada para o dispositivo de saída padrão (stdout)

• printf vem de "print formatted" (imprimir formatado);

• Sintaxe:

printf( “Expressão” , lista de argumentos );

<expressão> : Mensagens que serão exibidas.


<lista de argumentos> : pode conter identificadores de variáveis, expressões aritméticas ou
lógicas e valores constantes.
Raphael Baltar 32

Printf()

• Pode ser utilizado para imprimir o valor de variáveis

• Exemplo:
int i = 10;
printf(“ O valor de i = %d “, i);

• Os marcadores iniciados por % são substituidos por variáveis ou expressões da


lista de argumentos do printf
Raphael Baltar 33

Marcadores de formatação
Raphael Baltar 34

Marcadores de formatação
Raphael Baltar 35

Marcadores de formatação
Raphael Baltar 36

Scanf()

• Recebe uma entrada formatada no dispositivo de entrada padrão (stdin);


• Utiliza os mesmos marcadores que o printf();
• Admite multiplas entradas por comando, inclusive com marcadores de conversão
diferentes;
• Exige o marcador & antes do nome das variáveis (Exceto quando a variável for do
tipo string);
• Exemplo:
int i, j;
float x;
char letra;
scanf(%d, &i);
scanf(%d %f %c, &j, &x, &letra);
Raphael Baltar 37

Scanf()

• Exemplo: int i, j;
float x;
char letra;
scanf(%d, &i);
scanf(%d %f %c, &j, &x, &letra);
Raphael Baltar 38

Exemplo

• Lendo e escrevendo o valor lido na tela:


Raphael Baltar 39

Exercícios

• Declarar uma variável, inicializa-la com algum valor e apresentar, no mesmo


printf, o valor desta variável e o dobro deste valor:
▫ Saída: Variável x vale: <valor> e o dobro de x: <valor>

• Receber dois valores do teclado e apresentar o resultado da soma na seguinte


mensagem:
▫ Saída: O resultado de <valor> + <valor> = <valor>

• Fazer um programa para calcular o rendimento de um investimento, ele recebe o


valor depositado, a taxa de juros ao mês, o tempo total do investimento e
apresenta o montante ao final do período de investimento.
Raphael Baltar 40

Constantes
• Uma constante é uma posição de memória que pode ser identificada
através de um nome, e é usada para armazenar informações.

• Uma vez inicializada, o conteúdo de uma constante não pode ser


alterado ao longo do código.

• Podem ser declaradas de duas formas:

const val1 = 10; #define val1 10


const val2 = -5; #define val2 -5
const val3 = 55.12; OU #define val3 55.12
const val4 = ‘a’; #define val4 ‘a’
const val5 = “teste”; #define val5 “teste”
Raphael Baltar 41

Escopo das Variáveis


• Variáveis locais:
▫ São declaradas dentro de uma função
▫ Apenas podem ser referenciadas por comandos que estão dentro da função
na qual foram declaradas.

Variável local

Variável local (não tem


Relação com anterior)
Raphael Baltar 42

Escopo das Variáveis


• Variáveis globais:
▫ São declaradas antes da função principal e fora de qualquer outra função.
▫ Pode ser usada em qualquer função do programa
▫ Guardam seus valores durante toda a execução do programa.
Raphael Baltar 43

Escopo das Variáveis

int somatorio; //variável global

void soma(int valor) //‘valor’ é parâmetro formal da função soma


{
int conta; //variável local da função soma
somatorio = somatorio + valor; //manipulação da variável global
...
}

void main( )
{
int conta; //variável local da função main
somatorio = 0; //manipulação da variável global
...
}
Raphael Baltar 44

Operadores
• Podem ser divididos nas seguintes categorias:
▫ Atribuição;
▫ Aritméticos;
▫ Relacionais;
▫ Lógicos;
▫ Lógicos bit a bit;
▫ De memória.
Raphael Baltar 45

Operadores Aritméticos
• Realizam operações matemáticas em relação a um ou mais dados.

• Vale notar a seguinte diferença:

y = x++; //salva x em y, depois incrementa x


y = ++x; //incrementa x, depois salva x em y
Raphael Baltar 46

Operadores Relacionais
• Utilizados em testes condicionais para determinar a relação existente
entre dados.
Raphael Baltar 47

Operadores Lógicos Booleanos


• Realizam conjunções, disjunções ou negações entre elementos em um
teste condicional.

• Resultam em True ou False, ex.:

int x, y;
x = 10;
if(x > 5 && x < 15)
{};
Raphael Baltar 48

Operadores Lógicos Bit a Bit


• Realizam operações matemáticas em relação a um ou mais dados.
Raphael Baltar 49

Exercícios
1. Escrever um programa em C que determina a área de uma
circunferência cujo raio é fornecido pelo usuário.

2. Escreva um programa que defina variáveis dos tipos float, double e


long double, atribua valores a estas variáveis e as imprima usando o
formato normal e o de notação científica.

Vous aimerez peut-être aussi