Вы находитесь на странице: 1из 27

APLICAÇÃO DOS CONCEITOS FUNDAMENTAIS

Histórico da Linguagem de Programação C

A linguagem de programação denominada C foi criada em 1972 por Dennis

Ritchie no centro de Pesquisas da Bell Laboratories. Sua primeira utilização marcante foi a reescrita do Sistema Operacional UNIX, que até então era escrito na linguagem Assembly.

Em meados da década de 70 o sistema operacional UNIX deixou o laboratório para ser utilizado nas universidades. Foi o suficiente para que o sucesso da linguagem atingisse grandes proporções na área de informática. Por volta do ano de 1980, já existiam várias versões de compiladores C disponíveis no mercado. Com isso a linguagem C não estava mais restritas somente ao ambiente operacional UNIX, mas já era utilizado por outros sistemas operacionais.

A linguagem C é uma ferramenta de propósito geral, constituindo-se ainda em

uma ferramenta poderosa no desenvolvimento de programas em diversos paradigmas de programação. No entanto é mais utilizada na construção de compiladores, analisadores léxicos, bancos de dados, editores de texto, entre outras aplicações. Veja a seguir alguns exemplos de aplicações desenvolvidas com esta linguagem:

Sistema Operacional

UNIX

Banco de dados

dBase III, IV e Access

Planilhas eletrônicas

Excel

Aplicações gráficas

Efeitos Especiais em filmes como: Star Trek e Star War

A Linguagem C é de alto nível, pois seus programas são elaborados por meio de

instruções próximas a linguagem de comunicação usada pelo ser humano (comunicação natural), mas pode ser considerada de nível intermediário. Essa classificação também considera a possibilidade que esta linguagem tem de efetuar a codificação mais próxima da linguagem de máquina ou binária (baixo

nível), otimizando alguns programas que precisam de manipulações e acessos

muito específicos e dinâmicos. Observe a seguir as indicações relativas ao nível

de classificação para algumas linguagens:

BAIXO NIVEL

ALTO NIVEL

- CLAREZA PARA O SER HUMANO

+

+ VELOCIDADE DO PROGRAMA

-

Assembly

C

Cobol

Pascal

Ada

 

Basic

Modula-2

Linguagem “Case Sensitive

A Linguagem C é “Case Sensitive”, ou seja, as letras maiúsculas e minúsculas

são manipuladas como símbolos completamente diferentes. Suponha a

necessidade de armazenamento da idade, em anos, de uma pessoa. Para isso

será necessário criar uma variável no bloco de declarações deste programa,

sendo nele incluída a seguinte instrução:

inteiro IDADE;

Por meio desta declaração foi criada uma única variável, com o tipo de dado

inteiro, que recebeu o nome de identificação IDADE. Esta variável seria

completamente diferente de outra que se chamasse idade ou iDaDe, pois as

letras que compõem o seu nome estão diferentemente definidas em letras

maiúsculas e minúsculas. Sendo assim, estas três variáveis poderiam ser

declaradas em um mesmo programa, não ocasionando nenhum tipo de erro de

compilação, pois elas são completamente diferentes. Mas este tipo de declaração

não é aconselhada porque pode dificultar a compreensão do programador sobre

a ação realizada pelo código proposto.

inteiro IDADE, idade, iDaDe;

As palavras reservadas nesta linguagem são escritas sempre em letras minúsculas, o que pode ocasionar erros, caso este cuidado não seja observado. Por exemplo, a declaração da variável IDADE não seria possível porque o tipo de dado especificado não existe.

INTEIRO IDADE;

O tipo de dado inteiro é descrito por meio da palavra reservada inteiro, descrita corretamente em minúsculo, sendo a grafia proposta no exemplo anterior muito diferente da reconhecida por esta linguagem.

Palavras Reservadas

Uma palavra reservada, em uma linguagem de programação, já possui um significado definido na linguagem, não podendo ser utilizada para criação de outros objetos, tais como variáveis, constantes ou subprogramas, pois não permitirá a correta execução da tarefa solicitada ao computador.

A Linguagem C possui 32 palavras reservadas, de acordo com o padrão definido pela American National Standards Institute (ANSI). Acompanhe a grafia correta de cada uma delas na relação apresentada a seguir :

auto

double

int

struct

break

else

long

switch

case

enum

register

typedef

char

extern

return

union

const

float

short

unsigned

continue

for

signed

void

defaut

goto

sizeof

volatile

do

if

static

while

O Corpo Principal dos Programa em C

Um programa em C é formado por no mínimo um subprograma, sendo este

obrigatório para a criação de um programa. Este subprograma consiste de uma

função especifica, sendo a única a possuir um nome já definido - main (principal).

É por meio dela que um programa é executado, e sua ausência não caracteriza a

existência de um programa em C, mas um código escrito na linguagem C que não

pode ser executado. Para a execução do mesmo é necessária a elaboração da

função principal.

Outros subprogramas podem ser desenvolvidos pelo programador, atendendo as

necessidades que este tenha no desenvolvimento do seu programa, mas entre

estes subprogramas um será a função principal. Somente ela possui um nome já

definido (main), tendo todos os outros subprogramas seus nomes especificados

pelo programador, respeitando sempre as regras de fornecimento de nomes as

identificadores.

Comentários

A utilização de comentários na elaboração de programas permite uma

compreensão mais rápida das tarefas realizadas pelo programa, principalmente

quando são desenvolvidos códigos extensos. Em C, os comentários começam

com /* e terminam com */, mantendo-se todas as linhas existentes entre este

início(/*) e fim (*\) de comentário como informações que não serão usadas pelo

compilador, mas que auxiliam na correta compreensão do programador. O uso de

// também insere um comentário no programa, sendo este iniciado a partir do

código (//) e se estendendo até o final da linha onde ele se encontra, por exemplo:

/* SÍNTESE

*/

Objetivo: saudar o usuário Entrada: nenhuma

Saída:

mensagem de saudação

#include <stdio.h>

void main (void)

{

// DECLARAÇÕES

// INSTRUÇÕES printf(“Olá usuário!!!”);

}

// instrução da linguagem C

// instrução da linguagem C

// instrução da linguagem C

Início de blocos

Assim como na elaboração do algoritmo, os programas em C também são

desenvolvidos por meio de alguns blocos lógicos principais (síntese, declarações,

instruções), sendo todos eles destinados a uma organização coerente na

codificação desejada. Respeitando esta organização será elaborado um código

eficiente por um programador organizado que não tem dificuldades na

manipulação e manutenção dos seus programas.

SíNTESE:

Este bloco representa um resumo lógico do que o programa deverá fazer. A

confecção do mesmo identifica três informações relevantes que sintetizam as

atividades do programa, sendo elas: OBJETIVO (objetivo que este programa

atende); ENTRADA (as entradas de dados necessárias para atender este

objetivo); SAÍDA (os dados de saída após o processamento das entradas).

A construção da síntese deve ser cuidadosa, pois ela é exatamente o algoritmo,

ou melhor, a síntese dele.

DECLARAÇÕES:

A criação dos recursos manipulados pelo programa será efetuada neste bloco e

contribuirá com a organização no desenvolvimento do programa, pois facilitará

a compreensão no uso de cada recurso. Os recursos aqui citados consistem

das variáveis, constantes e subprogramas.

INSTRUÇÕES:

Neste bloco são descritas as ações a serem realizadas por um programa que

busca atingir o objetivo almejado pelo programador que o elaborou. As

instruções ou comandos estão neste bloco.

Na construção dos algoritmos as palavras reservadas início e fim representam

o começo e o término deste bloco. Cada instrução também é encerrada por

meio de uma pontuação específica, sendo normalmente utilizado o ponto e

vírgula (;).

O desenvolvimento dos programas em C possuem as mesmas regras, porém a

grafia ou os símbolos são diferentes. O bloco é iniciado pelo símbolo de

abertura de chaves ({) e encerrado pelo fechamento da mesma (}), enquanto

cada instrução é terminada também pelo ponto e vírgula (;).

Observe o exemplo a seguir:

/* SÍNTESE

Objetivo:

saudar o usuário

Entrada:

nenhuma

Saída:

mensagem de saudação

*/ #include <stdio.h>

void main (void)

{

// DECLARAÇÕES

// INSTRUÇÕES printf(“Olá usuário!!!”);

// instrução da linguagem C

// instrução da linguagem C

// instruções da linguagem C

printf(“Seja bem vindo ao Curso de C”);

}

Tipos de dados

Ao se declarar um objeto (constante, variável, função) é necessário identificar

qual o tipo de informação que ele manipulará , pois é através dessa declaração

que o computador poderá verificar a existência e a disponibilidade de espaço

suficiente para que o programa possa ser executado com sucesso.

A Linguagem C possui cinco tipos de dados escalares, sendo eles determinantes

nas possibilidades de manipulação de informações efetuadas pelo computador

que estiver executando o programa em C.

Tipo

Sintaxe em C

Tamanho (byte)

Faixa

Caracter

char

1

0 a 255

Inteiro

int

2

-32768 a 32767

Real

float

4

3.4E-38 a 3.4E38

double

8

1.7E-308 a 1.7E308

Não definido

void

0

sem valor

Observe a correta sintaxe na criação de algumas variáveis e constantes em C.

const int TAXA = 15;

char LETRA;

int VALOR;

armazenamento */ float SALARIO; /*variável real com certa precisão (3.4*10 -38 à 3.4*10 38 ) */

double PI;

// cria uma constante do tipo inteiro.

// cria a variável LETRA que armazena um único caracter

/* cria uma variável inteira com certa capacidade de

/* variável real com grande precisão (1.7*10 -308 à 1.7*10 308 ) */

Modificadores dos Tipos de Dados

A mudança nas propriedades relacionadas ao armazenamento de dados em C,

podem ocorrer por meio dos modificadores. Eles são aplicados a alguns dos tipos

de dados escalares da linguagem. Na relação a seguir são apresentados os

quatro modificadores existentes na Linguagem C padrão ANSI.

long

short

signed

unsigned

Os modificadores não podem ser aplicados a qualquer tipo, por exemplo: em float não se pode aplicar nenhum deles (não tem efeito algum), enquanto que o int aceita qualquer um dos quatro.

A uso dos modificadores long e short contribuem com o aumento ou redução do espaço de armazenamento do dado na memória. O unsigned permite a manipulação dos valores sem sinal, ou seja, só os valores positivos.

Criação ou Declaração de Variável e Constantes

As variáveis e constantes em C podem possuir qualquer nome desejado pelo programador, desde que estes nomes respeitem as regras de criação dos identificadores, como esclarecido anteriormente.

Para se utilizar variáveis ou constantes em C é necessária a declaração de cada uma delas, respeitando as regras de organização e sintaxe da linguagem. A forma geral de declaração destes dois recursos são apresentadas abaixo:

Forma geral para variável:

<tipo de dado> <nome da variável> ;

Forma Geral para constante

const <tipo de dado> <nome da constante> = <valor atribuído a constante>;

No algoritmo a seguir, veja as instruções que criam uma constante inteira e duas variáveis (uma real e outra caracter).

Síntese

Objetivo:

declarar uma constante e duas variáveis

Entrada:

nenhuma

Saída:

nenhuma

Declarações

inteiro numero;

real money;

Início

{ sem instruções }

Fim

Acompanhe a tradução deste algoritmo para a linguagem computacional

denominada C:

/* SÍNTESE

Objetivo:

Entrada:

Saída:

declarar uma constante e duas variáveis nenhuma nenhuma

*/ #include <stdio.h>

// instrução da linguagem C

void main (void)

// instrução da linguagem C

{

// DECLARAÇÕES

const int TUDO = 100; // declaração da constante inteira TUDO

char LETRA;

// declaração da variável caracter chamada LETRA

float SALARIO;

// declaração de uma variável do tipo real

// INSTRUÇÕES

/* instruções a serem executadas pelo programa */

}

ESTRUTURA DE UM PROGRAMA

Um programa em C possui características que devem ser obedecidas, pois um

erro de sintaxe ou semântica resultam na falha de cumprimento do objetivo

almejado pelo programa.

Na continuação da aprendizagem sobre a programação estruturada, todos os

códigos, ou programas, em C deverão ser elaborados respeitando a estrutura de

desenvolvimento de programas em três grandes blocos, sendo eles:

SÍNTESE;

DECLARAÇÕES;

INSTRUÇÕES.

O exemplo a seguir mostra a organização destas estruturas em um algoritmo

simples, descrito respeitando as regras do português estruturado.

Síntese objetivo: exemplificar a estrutura padrão de um programa escrito em C entrada: nenhuma saída: mensagem de sucesso no primeiro programa Declarações

Início

escreva(“Esse é o meu primeiro programa!!”);

Fim

A transformação deste algoritmo em um programa em C é apresentado na

sequência. Observe que as estruturas se mantém, apesar de conterem alguns

simples detalhes importantes que as diferenciam.

objetivo: exemplificar a estrutura padrão de um programa escrito em C entrada: nenhuma saída: mensagem de sucesso no primeiro programa

*/ #include <stdio.h>

void main (void)

{

// DECLARAÇÕES

// inclusão da biblioteca padrão de entrada e saída

// inicio do programa - função main()

// abertura do bloco principal da função main()

/* declarações das variáveis e constantes */ // INSTRUÇÕES

}

printf(“Esse é o meu primeiro programa!!”); // função de escrita na tela

getch();

// força uma parada para leitura

// final da função main(), logo fim do programa

Com a elaboração do algoritmo, seguido de sua tradução para a linguagem C, é

possível identificar algumas descrições diferentes que são muito importantes para

o programa em C. Acompanhe com atenção alguns cuidados importantes na

elaboração de um programa fonte nesta linguagem:

No início do programa o pré-processador deve ser acionado, por meio do

código #, para incluir alguma biblioteca que seja necessária ao código, ou

programa proposto;

O bloco de instrução é iniciado pela abertura de uma chave ({ - Início) e

encerrado pelo fechamento da chave ( } - Fim);

Um programa em C sempre terá ao menos um subprograma, a função

main, pois é a partir dele que tudo é executado;

Toda instrução termina com um ponto e vírgula (;);

Os comentários a serem inseridos no programa fonte são antecedidos

pelos códigos (// - comentário até o final da linha) ou entre /* e*/ que inseri

um comentários a partir do /* até o seu final no símbolo */.

No exemplo anterior foi possível acompanhar a elaboração de um algoritmo e sua tradução para a linguagem C, onde ambos estão respeitando as regras de sintática, semântica e a organização na descrição do programa.

INTRODUÇÃO BÁSICA AS ENTRADAS E SAÍDAS

A expressão ENTRADA significa, para a área de programação, todos os dados que serão informados ao computador através dos dispositivos de entrada acoplados a ele (teclado, mouse, scanner, etc.). Existe porém um dispositivo padrão para a leitura de dados na Linguagem C, o teclado, que sempre é acionado para ler valor(es) quando não existe nenhuma especificação. A SAÍDA representa todo dado que é passado do computador para o usuário por meio dos respectivos dispositivos (monitor, impressora, caixas acústicas, discos, etc.). Da mesma forma, esta linguagem também possui um dispositivo padrão de saída, sendo ele o monitor.

um dispositivo padrão de saída, sendo ele o monitor. Quando o usuário digita algum dado no

Quando o usuário digita algum dado no teclado do computador, ele está fornecendo informações para o mesmo, através do dispositivo de entrada padrão. Com isso o computador poderá usar estes dados para processar as informações desejadas, apresentando os resultados obtidos ao usuário.

Esta apresentação acontecerá através de um dispositivo de saída, podendo ser o próprio monitor de vídeo, dispositivo padrão de saída em C, caso nenhum outro seja especificado pelo usuário.

em C, caso nenhum outro seja especificado pelo usuário. Conhecendo a importância da comunicação do computador

Conhecendo a importância da comunicação do computador com seus usuários, assim como dos usuários para com o computador, será esclarecida a seguir as instruções em C que possibilitam a entrada e saída de dados no computador.

Instrução de Saída

A primeira instrução a ser apresentada consiste de uma função, ou seja, de um subprograma existente na biblioteca stdio.h existente em todos os compiladores da Linguagem C que respeitam o padrão ANSI.

# Função printf()

Esta função é responsável pela apresentação de dados no dispositivo padrão de saída da Linguagem C. Por se tratar de uma função, esta instrução não é uma palavra reservada da linguagem, mas sua utilização como nome de um outro recurso no programa (variável, constante, subprograma) pode dificultar a compreensão e manipulação do mesmo. A representação da forma geral desta função é mostrada a seguir:

printf("<expressão de controle>", lista de argumentos);

A expressão de controle é obrigatória e sempre estará entre aspas ("). Ela

controla tudo que será apresentado ao usuário, usando de códigos especiais para

apresentar dados de qualquer tipo, além de algumas orientados sobre o

posicionamento da informação na tela. Para mostrar dados de qualquer tipo são

utilizados os códigos precedidos do símbolo percentual (%), enquanto que as

orientações na tela tem um código com o precedente com a barra invertida (\).

Na expressão de controle são inseridos os códigos correspondentes a

apresentação desejada, consistindo assim na máscara que controlará a

apresentação das informações ao usuário. Nesta mascara são definidos os tipos

de dados a serem apresentados, além de qual a posição na expressão de

controle que eles serão mostrados no monitor.

Cada código % deve referenciar um valor ou recurso (variável, constante,

subprograma) especificado na lista de argumentos do printf. Esta lista é iniciada

após a expressão de controle, sendo separada por vírgula (,). A vírgula também

separa os diferentes elementos existentes nessa lista que são correspondentes a

cada código percentual existente na expressão de controle.

Existem vários códigos % que referem-se a diferentes tipos de dados que podem

ser manipulados, mas os relacionados a seguir serão suficientes para a

aprendizagem inicial nesta linguagem de programação.

Código

Significado

%d

Inteiro

%f

Real (float)

%c

Caractere

%s

String

%o

Octal

%x

Hexadecimal

%lf

Real grande (double)

%%

Mostra um %

A seguir, observe alguns exemplos que usam esta função de saída:

printf(“Testar”);

// apresenta somente a string da expressão de controle

printf(“Tem %d valores”,VALOR); // apresenta o valor inteiro na posição %d printf(“Valor = %f e o caracter de sexo de uma pessoa %c”, 23.5, ’M’); printf(“%s é legal”,”Maria”); // Apresenta o nome na posição do %

# Função scanf()

Esta função faz a leitura dos dados informados pelo usuário. Ela possui a mesma organização da printf, mas fazendo a leitura dos dados, por isso sua manipulação ocorre sobre os dispositivos de entrada de dados, sendo o teclado acionado por esta função. Observe a representação da forma geral desta função:

scanf("<expressão de controle>", lista de argumentos);

Observe os exemplos de leitura de dados do usuário.

scanf(“%d”,&NUMERO); //armazena um valor inteiro no endereço de NUMERO scanf(“%f%c”,&VALOR, &SEXO); // armazena um valor real e outro caracter

A leitura de um dado deve ser armazenada em uma variável, pois o valor

informado poderá ser usado na realização de algum processamento do programa. Para que ele fique disponível para o programa é necessário, primeiro, a declaração da variável, que deve ter o tipo de dado coerente com a leitura desejada.

A leitura do dado deve ser armazenada no endereço de memória que o

computador alocou para a variável declarada. Por isso o operador & é utilizado nesta função, armazenando o valor informado pelo usuário no correto endereço

de memória onde tal variável foi criada pelo computador.

Análise o que algoritmo a seguir faz.

Síntese objetivo: ler e escrever dados entrada: uma idade, um salário e a letra inicial do sexo de uma pessoa saída: a idade, o salário e o sexo informado pelo usuário Declaração inteiro IDADE; real SALARIO; caractere SEXO; Inicio escreva(“Informe a idade: “); leia(IDADE); escreva(“Informe o salário: “); leia(SALARIO); escreva(“Informe M para masculino ou F para feminino: “); leia(SEXO); escreva(“Sua idade = ”, IDADE,” e seu salário = ”,SALARIO); escreva(“A letra inicial do seu sexo = “,SEXO); Fim

Agora, observa a tradução do algoritmo em um programa em C.

/*SÍNTESE objetivo: ler e escrever dados entrada: uma idade, um salário e a letra inicial do sexo de uma pessoa saída: a idade, o salário e o sexo informado pelo usuário

*/

#include <stdio.h> #include <conio.h> void main(void)

{ // DECLARAÇÕES int IDADE; float SALARIO; char SEXO;

// INSTRUÇÕES printf("Informe a idade: "); scanf("%d",&IDADE); printf("Informe o salário: "); scanf("%f",&SALARIO);

printf("Informe M para masculino ou F para feminino: "); scanf("%c",&SEXO); printf("\nSua idade = %d e seu salário = %f ", IDADE, SALARIO); printf("\nA letra inicial do seu sexo = %c“,SEXO); getch();

}

As duas últimas instruções printf possuem um código de barra invertida, que

controla o posicionamento na tela. Especificamente o código \n leva o cursor

para a próxima linha. Este cursor identifica a posição onde serão apresentados os

valores de saída desejados.

# Função getch()

Esta função faz a leitura imediata de um caractere do teclado, não utilizando a

memória temporária (buffer) para armazena-lo. Ela permite ainda que o caractere

pressionado seja mostrado na tela. Veja no exemplo a seguir a leitura de um

caractere por meio desta função, sendo ele armazenado na variável LETRA.

void main ()

{ // DECLARAÇÕES char LETRA;

// INSTRUÇÕES LETRA = getche();

}

// início do corpo da função principal

// retorna o valor lido e o atribui a LETRA

# Função getch()

Similar a função getche(), esta função também lê um caractere do teclado, sem

usar o buffer, mas ela não permiti a sua apresentação no dispositivo de saída

padrão (monitor).

void main ()

// início do corpo da função principal

{

// DECLARAÇÕES char TECLA;

// INSTRUÇÕES

TECLA = getch();

}

// retorna o valor lido e o atribui a TECLA

# Função getchar()

A

leitura de um único caractere também é realizada por esta função, mas ela usa

o

buffer para efetuar esta leitura, sendo necessário pressionar a tecla ENTER

após digitar a tecla desejada. A tecla digita permanece na memória temporária

(buffer) até que o ENTER seja pressionado, o que solicitará ao computador a

copia dos dados do buffer para a memória principal, memória esta que o

computador utiliza para manipular os dados enquanto são processados. Observe

a sintaxe similar da getchar() com as outras funções que fazem a leitura de um

único caractere.

void main ()

// início do corpo da função principal

{

// DECLARAÇÕES char TECLA;

// INSTRUÇÕES TECLA = getchar(); /* retorna o valor lido na variável TECLA usando o buffer */

}

Operadores Lógicos e Relacionais Os operadores relacionais são usados para identificar o relacionamento existente entre

Operadores Lógicos e Relacionais

Os operadores relacionais são usados para identificar o relacionamento existente entre dados, contribuindo muito com o processamento a ser efetuado por um programa.

O resultado da aplicação de um operador relacional sempre será lógico, ou seja, VERDADEIRO ou FALSO.

Na Linguagem C esses operadores respeitam a sintaxe apresentada na tabela a seguir:

Operador em Algoritmo

Operador em C

Significado da Operação

>

>

Maior do que

>=

>=

Maior ou igual a

<

<

Menor do que

<=

<=

Menor ou igual a

=

==

Igual a

<>

!=

Diferente de

Observe a seguir alguns exemplos na aplicação dos operadores relacionais.

Exemplo em Algoritmo

VALOR = 0 // verifica se VALOR é igual a zero MAX > 1 // verifica se MAX é maior que um LETRA <> "A" // verifica se LETRA é diferente de "A"

Sintaxe do exemplo em

C

VALOR == 0 MAX > 1 LETRA != 'A'

No terceiro exemplo (LETRA <> "A") esta se comparando um caractere com o conteúdo da variável LETRA, que também deve ser do tipo caractere. Porém a transformação deste exemplo para a operação relacional respectiva em C usa o apostrofe aos invés das aspas do algoritmo. A identificação de um único

caractere em C é feita por apostrofe (aspas simples), enquanto que as aspas

(aspas duplas) são aplicadas somente a um conjunto de caracteres (string).

Os operadores lógicos de conjunção (E), disjunção (OU) e negação (NÃO)

também possuem uma sintaxe diferente na Linguagem C. Observe na relação a

seguir a sintaxe de cada um deles que permitem a elaboração de expressões

relacionais mais complexas e abrangentes.

Operador Lógico em Algoritmo

Operador Lógico em C

E

&&

OU

||

NÃO

!

Acompanhe na sequencia a revisão das operações lógicas efetuadas sobre as

tabelas verdades representadas a seguir. Suponha que os valores atribuídos as

variáveis A e B sejam os representados por V (verdadeiro) e F (falso).

Operador E Lógico em C

Operador OU Lógico em C

Operador NÃO

A

B

A && B

A

B

A || B

Lógico em C

V

V

V

V

V

V

A

! A

V

F

F

V

F

V

V

F

F

V

F

F

V

V

F

V

F

F

F

F

F

F

 

O exemplo a seguir mostra as operações relacionais na expressão proposta e

seu resultado.

((5 > 5) || ((2 != 3) && (1 < 3))) => o resultado desta expressão é Verdadeiro

Sempre deve haver cuidado com a análise da expressão proposta, pois os

parênteses interferem diretamente no resultado final, modificam a ordem da

sequencia alcançada por cada expressão, pois eles alteram a precedência das operações (prioridades), por exemplo:

3 + 5 * 2 = 13 mas com o uso dos parênteses pode-se ter que (3+5) * 2 = 16

Operador de atribuição

O operador de atribuição é utilizado para atribuir um valor a uma variável ou constante, somente na sua declaração, pois no decorrer do programa a constante não recebe nenhum outro valor. Este operador sempre armazena o valor, ou o resultado da expressão, que está a direita do símbolo de atribuição (um sinal igual = ), armazenando este valor, ou resultado da expressão, na variável que está a sua esquerda.

Veja a diferença existente na sintaxe usado pelo algoritmo e sua respectiva tradução para a Linguagem C:

Algoritmo

VALOR

respectiva tradução para a Linguagem C: Algoritmo VALOR 50; Operadores Aritméticos Linguagem C VALOR = 50;

50;

Operadores Aritméticos

Linguagem C

VALOR = 50;

Os operadores aritméticos em C possuem a sua sintaxe especificada por meio dos símbolos identificados a seguir:

SÍMBOLO DO OPERADOR

OPERAÇÃO

+

Adição

-

Subtração

*

Multiplicação

/

Divisão

%

Módulo (resto da divisão de inteiros)

A operação de divisão de inteiros (div do algoritmo) em C acontece sempre que

dois valores inteiros são divididos (/), como pode ser visto na comparação a

seguir:

5 / 2

= 2

enquanto que

5.0 / 2 = 2.5

O resultado destas operações são apresentadas pela linguagem C, quando forem

solicitadas dessa forma. Por isso deve ter cuidado com as operações de divisão

a serem solicitadas no programa, pois o resultado sempre estará relacionado a

sintaxe e a lógica desejada na elaboração da expressão.

Acompanhe o algoritmo que efetua uma operação aritmética.

Síntese

Objetivo: somar duas variáveis Entrada: nenhuma Saída: resultado da soma Declarações

inteiro VALOR_1, VALOR_2, RESULTADO;

Inicio

 
VALOR_1 35;

VALOR_1 35;

VALOR_2 42;

VALOR_2 42;

RESULTADO

RESULTADO VALOR_1 + VALOR_2;

VALOR_1 + VALOR_2;

escreva (“Total = ”, RESULTADO);

Fim

Acompanhe agora a tradução deste algoritmo para o programa computacional em

/*SÍNTESE Objetivo: somar duas variáveis Entrada: nenhuma Saída: resultado da soma

*/ void main ()

{

// DECLARAÇÕES

int VALOR_1, VALOR_2, RESULTADO; // declarações das variáveis

// INSTRUÇÕES

VALOR_1 = 35;

// atribuição de 35 a VALOR_1

VALOR_2 = 42;

// atribuição de 42 a VALOR_2

RESULTADO =VALOR_1+VALOR_2; // soma e atribui a RESULTADO

printf (“Total = %d ”,RESULTADO); // mostra o valor da adição atribuído

}

Veja o resultado apresentado no monitor de vídeo do computador que está

executando este programa.

Incremento e decremento Os operadores de incremento ou decremento podem ser escritos de uma forma

Incremento e decremento

Os operadores de incremento ou decremento podem ser escritos de uma forma mais simplificada na Linguagem C. O incremento representa um simples contador que acrescenta um ao valor da variável inteira utilizada na expressão. Por exemplo:

CONTADOR

inteira utilizada na expressão. Por exemplo: CONTADOR CONTADOR + 1; equivale a CONTADOR++; Estes operadores podem

CONTADOR + 1;

equivale a

CONTADOR++;

Estes operadores podem ser descritos de duas forma diferentes:

• Pré-fixados (++CONTADOR)

• Pós-fixados (CONTADOR++)

Estas diferenças são significativas, por isso acompanhe com atenção os

exemplos a seguir:

Supondo os valores de

X = 10;

e

Y = 0;

Pré-incremento (pré-fixado)

Y = ++X; equivale a X = X+1; primeiro X é incrementado de 1

Y = X;

depois X é atribuído a Y.

Seus valores finais, após as operações acima seriam de X e Y igual a 11.

Pós-incremento (pós-fixado)

Y = X++; equivale a Y = X;

primeiro X é atribuído a Y.

X = X+1; depois X é incrementado de 1.

Iniciando com os menos valores propostos acima, os valores finais para as operações de pós-incremento seriam de X igual a 11 e Y igual a 10.

As mesma lógica envolve os operadores de decremento em C:

Pré-decremento

Y

= --X; equivale a X = X -1; primeiro X é decrementado de 1.

Y = X;

depois X é atribuído a Y.

Seus respectivos valores finais são: X = 9 e Y = 9.

Pós-decremento

Y = X--; equivale a

Y = X;

primeiro X é atribuído a Y.

X = X -1; depois X é decrementado de 1.

Com os mesmos valores iniciais, X é encerrado com 9 e Y com 10.

Operações de Atribuição Simplificadas

A forma como as operações de atribuição são descritas em uma expressão

também podem ser simplificadas n a Linguagem C, porém isso deve ser

compreendido corretamente, pois esta representação pode tornar-se um

complicador na compreensão das expressões.

Expressão Convencional

Expressão Equivalente em C

X

= X + Y;

X += Y;

X

= X - Y;

X -=Y;

X

= X * Y;

X *= Y;

X

= X / Y;

X /= Y;

X

= X % Y;

X %= Y;

/*SÍNTESE Objetivo: somar duas variáveis Entrada: valor das variaveis Saída: resultado da soma

*/ void main( )

{ // DECLARAÇÕES int NUMERO_1, NUMERO_2;

// INSTRUÇÕES printf (“Informe o primeiro valor: ”);

scanf(“%d”,&NUMERO_1);

printf (“\nInforme o segundo valor: ”);

scanf(“%d”,&NUMERO_2);

}

NUMERO_1 += NUMERO_2;

/*equivalente a expressão

NUMERO_1=NUMERO_1+NUMERO_2 */

printf (“\nValor 1 = %3d e Valor 2 = %3d", NUMERO_1, NUMERO_2);

getch();

/* aguarda ser informada uma tecla para encerrar o programa */

Supondo que o usuário do programa digitou os valores 13 e 5, respectivamente,

sendo a execução do programa demonstrada na representação do monitor de

vídeo a seguir:

13 e 5, respectivamente, sendo a execução do programa demonstrada na representação do monitor de vídeo