Você está na página 1de 46

PROGRAMAO APLICADA ENGENHARIA

Aula 1: Introduo e Caracterizao da Linguagem C/C++

Prof Joicymara Xavier


joicy.xavier@ufvjm.edu.br
Objetivos

Caracterizar Linguagens de Programao;


Caracterizar a linguagem C;
Estruturas bsicas em C;
Identificadores;
Operadores Relacionais, Lgicos e Aritmticos;
Comandos de Entrada e Sada;
Estruturas Condicionais;
Estruturas de Controle/Repetio;
Funes
Material de Estudo

Apostilas:
Curso de Programao em C da UFMG
Portal Programao Descomplicada Notas de aula Prof. Isabel Manssour PUCRS

30/05/2017 Prof Joicymara Xavier 3


O que significa programar?

30/05/2017 Prof Joicymara Xavier 4


Conceitos

Uma Linguagem de Programao (LP) uma ferramenta


utilizada para escrever programas.
As primeiras linguagens de programao eram muito simples.
LPs de baixo nvel. Ex.: Assembly, linguagem de mquina
Com o avano dos computadores e a necessidade de se
desenvolver aplicaes mais complexas, as LPs passaram a ser
mais robustas.
LPs de alto nvel. Ex.: C, C++, Java, Pascal,...

30/05/2017 Prof Joicymara Xavier 5


Conceitos

30/05/2017 Prof Joicymara Xavier 6


Linguagens de Programao

As linguagens de programao surgiram da necessidade de


tornar o processo de desenvolvimento de software mais
produtivo.

uma forma padronizada de se comunicar (enviar instrues)


com um computador.

30/05/2017 Prof Joicymara Xavier 7


Linguagens de Programao

Possui um conjunto de regras sintticas e semnticas.


O cdigo escrito em uma linguagem de programao deve ser
convertido para o cdigo de mquina para ser entendido pelo
computador.
Uma linguagem de programao pode ser compilada ou
interpretada.

30/05/2017 Prof Joicymara Xavier 8


Linguagens de Programao

Na computao, a compilao o processo que rene o cdigo


fonte e o transforma em algo que faa mais sentido para o
computador.

Algumas linguagens geram cdigos intermedirios para que


possam ser interpretados posteriormente.

30/05/2017 Prof Joicymara Xavier 9


Tipos de Linguagens: Baixo Nvel

So linguagens com foco na mquina, ou seja, utiliza instrues


detalhadas que controla os circuitos internos do computador.
Usualmente so genericamente chamadas de linguagens de
mquina, Assembly ou de linguagem de montagem.

30/05/2017 Prof Joicymara Xavier 10


Tipos de Linguagens: Baixo Nvel

Vantagens: Maior velocidade de processamento e ocupam


menor espao na memria.

Desvantagens: Pouca portabilidade, ou seja, o cdigo gerado


para um tipo de processador no serve para outro.

30/05/2017 Prof Joicymara Xavier 11


Tipos de Linguagens: Alto Nvel

So linguagens voltadas para que haja uma maior interao


entre homem e a mquina.
Necessitam de compiladores ou interpretadores para gerar as
instrues do microprocessador.

30/05/2017 Prof Joicymara Xavier 12


Tipos de Linguagens: Alto Nvel

Vantagens: So compiladas ou interpretadas, tm maior


portabilidade podendo ser executados em vrias plataformas
com pouqussimas modificaes.

Desvantagens: So mais lentas e ocupam mais memria.

30/05/2017 Prof Joicymara Xavier 13


Compiladores X Interpretadores

A nica linguagem que o computador entende a linguagem


de mquina.
Programas escritos em uma linguagem de alto nvel, devem ser
traduzidos para linguagem de mquina.
Os programas que fazem essa traduo, classificam-se em:
Interpretadores
Compiladores

30/05/2017 Prof Joicymara Xavier 14


Compiladores X Interpretadores

Os INTERPRETADORES, traduzem o cdigo fonte em linguagem


de mquina atravs da interpretao de cada instruo feita a
medida que o software executado.
Necessitam de um componente interpretador presente na mquina.
Os COMPILADORES, traduzem o cdigo fonte em linguagem de
mquina atravs da gerao de um programa. OBJ, que pode
ser linkeditado, torna-se um arquivo executvel.
Em C, os programas so compilados.

30/05/2017 Prof Joicymara Xavier 15


Paradigmas de LP

Paradigma o conjunto de caractersticas que servem para


categorizar um grupo de linguagens.
Os paradigmas mais comuns para LPs so:
Estruturado: C, Pascal
Orientado a objetos: Java, C++, C#;
Funcional: Haskell, Clean, Lisp;
Lgico: Prolog

30/05/2017 Prof Joicymara Xavier 16


Paradigmas de LP

30/05/2017 Prof Joicymara Xavier 17


A Linguagem C - HISTRICO

C foi originalmente desenvolvida por Dennis Ritchie e K.


Thompson nos laboratrios Bell nos anos 70.
Derivadas de duas linguagens anteriores chamadas BCPL e B.
Inicialmente para mquinas com sistema operacional UNIX
Tornou-se uma das mais importantes e populares nos ltimos
dias.
Foi projetada para o desenvolvimento de programas
estruturados e modulares.
30/05/2017 Prof Joicymara Xavier 18
A Linguagem C - HISTRICO

Nos anos seguintes, a popularidade da linguagem C aumentou


consideravelmente, aumentando tambm o surgimento de
ferramentas de desenvolvimento.
Inicialmente, muitas implementaes do C no traduziam
fielmente a definio original, o que gerou alguns problemas
de incompatibilidade.
A portabilidade proposta pela definio original ficou bastante
comprometida

30/05/2017 Prof Joicymara Xavier 19


O padro ANSI

Buscando uma padronizao na definio da linguagem C, a


American National Standard Institute (ANSI), desenvolveu um
padro hoje bastante utilizado no mundo da linguagem C,
chamado de C padro ANSI ou C ANSI.
Quase todas as ferramentas de desenvolvimento da linguagem
C atuais seguem este padro

30/05/2017 Prof Joicymara Xavier 20


Caractersticas

Linguagem de propsito genrico


Usada para escrever processadores de texto, planilhas, sistemas
operacionais, programas de comunicao, programas para
automao, SGBDs, navegadores e servidores web, etc.
Possui caractersticas de alto e de baixo nvel;
Excelente performance;
Muito popular;
Sintaxe de C serve de base para muitas outras linguagens.

30/05/2017 Prof Joicymara Xavier 21


Caractersticas

Deu origem a outras linguagens de programao, entre elas, C++, Java, C#, PHP,
Ruby, Python, etc.
Portabilidade
Gerao de cdigos executveis compactos e rpidos
Interao com o sistema operacional
Facilidade de uso
Linguagem estruturada
Confiabilidade
Simplicidade
Case sensitive: Maisculas e minsculas fazem diferena.
30/05/2017 Prof Joicymara Xavier 22
Vantagens

Linguagem pequena (rpido aprendizado)


Eficincia (podemos codificar pensando em um problema
especfico)
Tipos de dados simples
Acesso direto memria

30/05/2017 Prof Joicymara Xavier 23


Desvantagens

O programador comete mais erros que em linguagens de mais


alto nvel;
Acesso indevido memria;
Muitos erros no so avisados: assume-se que o programador
sabe o que est fazendo

30/05/2017 Prof Joicymara Xavier 24


A linguagem C

compilada
Cdigo fonte (.c) -> cdigo objeto (.o)
Linkedio transforma vrios objetos em um executvel (.exe)

Existem vrios compiladores


GCC
Mingw
Visual C++

30/05/2017 Prof Joicymara Xavier 25


A linguagem C

Possui palavras chaves que no podem ser usadas para


nenhum outro propsito.
auto, break, case, const, continue, default, do, double, else, etc...
A linguagem C diferencia palavras maisculas de minsculas
(case sensitive).
Todas as palavras chaves devem ser escritas em minsculo.

30/05/2017 Prof Joicymara Xavier 26


Principais tipos de dados

int para armazenamento de qualquer nmero inteiro negativo,


nulo ou positivo. Ocupa 2 bytes de memria.
float para armazenar qualquer nmero real negativo, positivo
ou nulo. Ocula 4 bytes de memria.
double para armazenar qualquer nmero real negativo,
positivo ou nulo. Ocupa 8 bytes de memria.
char para armazenar um caractere. Ocupa 1 byte de memria.
**Dependendo da arquitetura da mquina esses valores podem mudar.

30/05/2017 Prof Joicymara Xavier 27


Declarao de variveis

Uma varivel um espao de memria do computador


que reservamos para guardar dados.
Como o prprio nome sugere, as variveis, podem conter
valores diferentes a cada instante de tempo, ou seja, seu
contedo pode variar de acordo com as instrues do
algoritmo.
As variveis so referenciadas atravs de um nome
(identificador) criado por voc durante o desenvolvimento
do algoritmo.
30/05/2017 Prof Joicymara Xavier 28
Declarao de variveis

No podemos utilizar palavras reservadas

Podem ter letras ou dgitos

Devem iniciar com letra ou _

Variveis no inicializadas tm valor indefinido

30/05/2017 Prof Joicymara Xavier 29


Declarao de variveis

Toda e qualquer varivel deve ser declarada e sua declarao


deve ser feita antes de sua utilizao no programa.
<tipo> <nome_var>;
Ou
<tipo> <nome_var1>, <nome_var2>, ..., <nome_varn>;
Exemplos:
int numero1;
float numero2, total, soma;

30/05/2017 Prof Joicymara Xavier 30


Atribuio de variveis

<varivel> = <expresso>;

Exemplos:
numero1 = 10;
soma = 20 * 4 + 5;
Obs:
a++ similar a a = a + 1;
a-- similar a a = a 1;

30/05/2017 Prof Joicymara Xavier 31


Operadores relacionais

30/05/2017 Prof Joicymara Xavier 32


Operadores aritmticos

30/05/2017 Prof Joicymara Xavier 33


Operadores lgicos

O cabealho math.h possui diversas outras funes


matemticas. Para conferir as demais funes clique aqui.

30/05/2017 Prof Joicymara Xavier 34


Comentrios

Servem para explicar determinados trechos de cdigo.


Comentar trechos do cdigo fonte uma forma de documentar o
programa.
Os comentrios no influenciam em nada na execuo do
programa.
/* este um comentrio
de bloco */

// este um comentrio de linha


30/05/2017 Prof Joicymara Xavier 35
Pr-processamento

Pr-processamento uma fase de compilao anterior


traduo do programa para a linguagem assembly.
O pr-processamento engloba, entre outras, tarefas tais como
a incluso de arquivos auxiliares, a traduo de constantes
simblicas e de macros.
Na linguagem C o caractere # a diretiva que indica a
necessidade de pr-processamento.
Exemplo: #include <stdio.h>

30/05/2017 Prof Joicymara Xavier 36


Pr-processamento

A linguagem C possui a diretiva #define que serve para incluir


no programa constantes simblicas e expresses denominadas
macros.

Exemplo:
#define PI 3.1415

30/05/2017 Prof Joicymara Xavier 37


Comando de sada

Sada (escreva):
printf(<expresso>, <lista de argumentos>);

<expresso> Mensagens que sero exibidas.

<lista de argumentos> pode conter identificadores de variveis,


expresses aritmticas ou lgicas e valores constantes.

30/05/2017 Prof Joicymara Xavier 38


Comando de sada

Impresso de Tipos de Dados

30/05/2017 Prof Joicymara Xavier 39


Comando de sada

Impresso de caracteres especiais

30/05/2017 Prof Joicymara Xavier 40


Comando de sada

Exemplos:
printf(Se quisesse imprimir uma string: %s, Minha string!);

printf(Valor inteiro atribudo foi %d, para o caractere %c, e um float


foi de %f, 99, a, 1.45);

printf(Float com 4 casas decimais: %.4f, 1.2);

30/05/2017 Prof Joicymara Xavier 41


Comando de entrada

Entrada (leia):
scanf(<expresso>, <lista de argumentos>);

Exemplo:
int m;
scanf (%d, &m);
%d indicativo do tipo, neste caso do tipo inteiro.
&m operador utilizado para obter o endereo de memria da varivel.

30/05/2017 Prof Joicymara Xavier 42


Estrutura bsica de um programa C

Um programa em C consiste de uma ou vrias funes, onde


uma delas precisa ser denominada main e deve existir em
algum lugar de seu programa. Esta funo marca o incio da
execuo do programa.
Outras funes podem ser definidas pelo programador ou
preencher a funo main, porm em um programa executvel
em C, a funo main deve sempre existir.

30/05/2017 Prof Joicymara Xavier 43


Estrutura geral de um programa em C

30/05/2017 Prof Joicymara Xavier 44


Code:: Blocks

um ambiente de desenvolvimento (IDE*) integrado de cdigo


aberto e multiplataforma.
Tem suporte a mltiplos compiladores.
Composto por plug-ins.

http://www.codeblocks.org/

*Integrated Development Environment


30/05/2017 Prof Joicymara Xavier 45
Exerccio

1. Implemente o Hello World!.


2. Faa um programa que imprima o nmero 75.7632489 com 1,
2 e 5 casas decimais.
3. Faa um programa que pea ao usurio para digitar sua altura,
leia o dado digitado e imprima o valor com a frase Sua altura
:.

30/05/2017 Prof Joicymara Xavier 46

Você também pode gostar