You are on page 1of 5

Algoritmos

Profa. Dra. Patricia Bellin Ribeiro

LINGUAGEM C/C++ Segundo Schildt (1996), Dennis Ritchie inventou a linguagem C e foi o primeiro a implement-la utilizando um computador com sistema operacional UNIX.

Aula 2

Introduo a Ling. C

Comandos de Entrada e Sada

C resultante de um processo evolutivo de linguagens e seu marco inicial foi uma linguagem chamada BCPL, desenvolvida por Martin Richards, que teve fortes influncias em uma linguagem chamada B, inventada por Ken Thompson. Na dcada de 70, B levou ao desenvolvimento de C.
Aulas e Prticas

Variveis

Operadores Aritmticos

Exerccios

LINGUAGEM C/C++ Durante alguns anos o padro da linguagem C foi aquele fornecido com a verso 5 do implementaes de C foram criadas gerando assim muitas discrepncias. Para resolver este problema o ANSI (American National Standards Institute), estabeleceu em 1983 um comit para definir um padro que guiasse todas as implementaes da linguagem C. A linguagem C++ uma extenso da linguagem C. As instrues que fazem parte da linguagem C representam um subconjunto de C++. Os incrementos encontrados na linguagem C++ foram feitos para dar suporte programao orientada a objetos. A sintaxe da linguagem C++ basicamente a mesma da linguagem C.

Linguagem C Um programa escrito na linguagem de programao C/C++ consiste em uma coleo de funes, sendo que a main() a primeira funo a ser executada. Alm disso, C/C++ case-sensitive, ou seja, diferencia letras maisculas de letras minsculas (por exemplo, int Int). Um programa em C/C++ mnimo consiste em: main(){ } //incio //fim

Este programa define a funo main, que no possui argumentos e no faz nada. As chaves, { }, so usadas para expressar agrupamentos. No caso do exemplo, elas indicam o incio e o fim do corpo da funo main, que est vazia, isto , no faz nada. Cada programa em C/C++ deve ter uma funo main.

Em C/C++, existem comandos que so processados durante a compilao do programa (pr-processador). Estes comandos so genericamente chamados de diretivas de compilao. Tais comandos informam ao compilador do C/C++ basicamente quais so as constantes simblicas usadas no programa e quais bibliotecas devem ser anexadas ao programa executvel. A diretiva #include <filename> diz ao compilador para incluir na compilao do programa o arquivo filename.

Geralmente estes arquivos contm bibliotecas de funes ou rotinas do usurio. Bibliotecas so arquivos contendo vrias funes que podem ser incorporadas aos programas. Os arquivos terminados em .h so o chamados headers (ou cabealhos). Estrutura Bsica: #include <nome_da_biblioteca> main( ) { bloco de comandos; }

Palavras reservadas As palavras reservadas no podem ser utilizadas como identificadores, pois so de uso restrito da linguagem C/C++ (comandos, estruturas, declaraes, etc.). O conjunto de palavras reservadas do C/C++ padro : auto, double, if, static, break, else, int, struct, case, entry, long, switch, char, extern, register, typedef, continue, float, return, union, default, for, sizeof, unsigned, do, goto, short, while.

Tipos Bsicos de Dados Cada linguagem de programao possui tipos de dados prdefinidos. Assim para desenvolvermos algoritmos utilizaremos os seguintes tipos de dados: INTEIRO = armazena qualquer valor pertencente ao conjunto dos nmeros inteiros. REAL = armazena qualquer valor pertencente ao conjunto dos nmeros reais. CARACTER = armazena apenas 1 elemento pertencente a um dos conjuntos abaixo: {A, ..., Z}, {0, ..., 9}, {*, ?, &, =, +, $, -, /, ', ",} LITERAL = Armazena 1 seqncia de caracteres. BOOLEANO = Armazena apenas as constantes FALSO ou VERDADEIRO.

Tipos Bsicos de Dados Em C/C++ existem cinco tipos bsicos de dados: caracter, inteiro, ponto flutuante, ponto flutuante de preciso dupla e sem valor (char, int, float, double e void, respectivamente). Esta linguagem no possui o tipo de dado booleano, pois considera qualquer valor diferente de zero como sendo verdadeiro. C no possui tambm um tipo especial para armazenar cadeias de caracteres (literais, strings). Deve-se, quando necessrio, utilizar um vetor contendo vrios elementos do tipo char. TIPO char unsigned char signed char TIPO FAIXA DE VALORES -127 a 127 0 a 255 O mesmo que char FAIXA DE VALORES TAMANHO EM BYTES 1 1 1 TAMANHO EM BYTES TIPO Int unsigned int signed int short int signed short int long int unsigned long int signed long int float double long double FAIXA DE VALORES -32.767 a 32767 0 a 65.535 O mesmo que int O mesmo que int O mesmo que short int e int 0 a 4.294.967.295 O mesmo que long int 3,4 E-38 a 3,4E+38 1,7 E-308 a 1,7E+308 3,4 E-4.932 a 1,1E+4.932

TAMANHO EM BYTES 2 2 2 2 2 2 4 4 4 8 10

unsigned short int O mesmo que unsigned int

-2.147.483.648 a 2.147.483.647 4

Variveis Uma varivel uma posio de memria que pode ser identificada atravs de um nome, e usada para guardar um valor. O contedo de uma varivel pode ser alterado atravs de um comando de atribuio, ou seja, aps uma atribuio a varivel muda de valor. interessante comentar que no h uma inicializao implcita na declarao, mas a varivel pode ser inicializada na declarao. Todas as variveis em C/C++ devem ser declaradas antes de serem usadas. A forma geral de uma declarao : tipo lista_de_variveis; sendo: tipo = tipo de dado vlido em C/C++.

A declarao de variveis pode ser feita em trs lugares bsicos: dentro de funes (variveis locais), na definio dos parmetros das funes (parmetros formais) e fora de todas as funes (variveis globais). Exemplos: Algoritmo x: real y, z: real SomaGeral: inteiro sexo: caracter nome: : literal [40] C float x; float y, z; int SomaGeral; char sexo; char nome[40];

Note que em C/C++ aps cada comando deve-se colocar ; (ponto e vrgula).

Identificadores Em C/C++, os nomes de variveis, funes, rtulos e vrios outros objetos definidos pelo usurio so chamados de identificadores. A escolha dos nomes desses identificadores deve ser feita seguindo as regras: Um identificador deve iniciar por uma letra ou por um _ (underscore). A partir do segundo caracter pode conter letras, nmeros e underscore. Deve-se usar nomes significativos dentro do contexto do programa. Lembrar que C/C++ uma linguagem case-sensitive (letras maisculas so diferentes de letras minsculas). Costuma-se usar maisculas e minsculas para separar palavras. Deve ser diferente das palavras reservadas.

Identificadores Exemplos de identificadores: Correto Cont Teste23 usuario_1 RaioDoCirculo Incorreto 1cont Oi! usuario...1 Raio Do Circulo

Constantes So identificadores que no podem ter seus valores alterados durante a execuo do programa. As constantes em C/C++ podem ser de qualquer um dos cinco tipos de dados bsicos. Porm, a maneira como cada constante representada depende do seu tipo. As constantes de caracteres so envolvidas por apstrofos ( ) e, as cadeias de caracteres so representadas entre aspas ( ). Para criar uma constante existe o comando #define que, em geral colocado no incio do programa fonte, ou seja, no seu cabealho. Exemplos: Algoritmo: LARGURA_MXIMA = 50 FALSO = 0 VERDADEIRO = 1 CURSO = CC TERMINO = T VALOR_DE_PI = 3,1415 C: #define #define #define #define #define #define LARGURA_MXIMA 50 FALSO 0 e VERDADEIRO 1 CURSO CC TERMINO T VALOR_DE_PI 3.1415

Observe que no se coloca ponto e vrgula aps o valor.

Comando printf

Descrio Imprime informaes na tela. necessrio a utilizao da biblioteca #include<stdio.h> Exemplo: Vamos ver alguns exemplos de printf() e o que eles exibem: printf ("Teste %% %%") -> "Teste % %" printf ("%f",40.345) -> "40.345" printf ("%2.2f",40.345) -> "40.34" printf ("Um caractere %c e um inteiro %d",'D',120) -> "Um caractere D e um inteiro 120" printf ("%s e um exemplo","Este") -> "Este e um exemplo" printf ("%s%d%%","Juros de ",10) -> "Juros de 10%

Comando getch

Descrio Comando que d uma pausa na execuo do programa para que se possa visualizar os resultados. Exemplo: getch();

scanf

Utilizando esta funo possvel pedir dados ao usurio. necessrio a utilizao da biblioteca #include<stdio.h> Exemplo: scanf ("%d, &A)

Comentrios Comentrios so textos que podem ser inseridos em programas com o objetivo de document-los e no so analisados pelo compilador. Podem ocupar uma ou vrias linhas devendo ser inseridos nos programas utilizando /* ... */ ou //. Exemplos: 1) // comentrio 2) /* linhas de comentrios linhas de comentrios */ Em (1) ) a regio de comentrio aberta por // / e encerrada automaticamente ao final da linha. Em (2) a regio de comentrios aberta com /* e fechada com */.

Estrutura Bsica de um Programa


ENTRADAS O que o usurio ter que informar? PROCESSAMENTO O que faremos com os dados de entrada? SADA O que devemos responder ao usurio? 1 Escreva um algoritmo que receba dois valores e apresente a mdia Entrada: A e B (receba dois valores) Processamento: calcular a mdia Sada: apresentar o valor da mdia na tela 2 Faa um algoritmo que receba dois valores e divida um pelo outro. Entrada: A e B (receba dois valores) Processamento: dividir A por B Sada: Apresentar o resultado da diviso

Comandos de Entrada e Sada

Apesar do comando scanf poder ser utilizado para qualquer tipo de dados, seu uso para char ou string pode resultar em problemas, devido ao fato de armazenar no buffer o comando <enter>. Este problema resolvido se antes, ou logo utilizao seja acrescentado o comando fflush(stdin);. aps sua

float A, B, M;

O comando de sada utilizado para mostrar os dados na tela ou na impressora, e seu principal comando printf. Seus parmetros so de dois tipos: o primeiro formado por caracteres que sero exibidos na tela, e o segundo contm comandos de formato que definem a maneira pela qual os argumentos subseqentes sero mostrados.

getch();

Comandos de Entrada e Sada O comando de formato comea por % e seguido pelo cdigo de formato. Os principais cdigos so:

Comandos de Entrada e Sada

#include <stdio.h> #include <conio.h> main() { int idade; char nome[30]; printf("Digite seu nome: "); scanf(%s, &nome); printf("Digite sua idade: "); scanf("%d", &idade); printf("%s sua idade eh %d anos.\n", nome, idade); getch();

Os comandos de formato podem ser alterados, por exemplo, para especificao da largura mnima de campo ou do nmero de casas decimais.

Observe, no exemplo anterior, que em strings no se utiliza & na leitura do dado. A funo getch() espera at que uma tecla seja pressionada e no mostra o caracter na tela. Aqui ela foi utilizada para ver o que estava escrito na tela. importante comentar que C/C++ possui constantes especiais de caracter de barra invertida para caracteres que no podem ser impressos. Os principais so: \b retrocesso (BS). \f salto de pgina (Form Feed - FF).

Comando de Atribuio Este comando utilizado para atribuir valores ou operaes s variveis, sendo representado por = (sinal de igualdade). A linguagem C/C++ permite que voc atribua o mesmo valor a muitas variveis usando atribuies mltiplas em um nico comando. Exemplos: x = 4; x = x + 2; y = z = 2.5; sexo = F;

\n linha nova (line Feed - LF). \r retorno de carro (CR). \t tabulao horizontal (TAB). \ - aspas simples. \\ - barra invertida. \ aspas duplas. \0 nulo. \v tabulao vertical.

Comando de Atribuio Caso seja necessrio armazenar uma cadeia de caracteres dentro de uma varivel, deve-se utilizar uma funo para manipulao de caracteres: strcpy(nome, Joo); Para que seja possvel a utilizao da funo strcpy deve-se inserir ao programa, por meio da diretiva #include, a biblioteca <string.h>.

Operadores Aritmticos (+, -, *, /, %)


+ * / %
Exemplo: Int A, C=4 A=6 B=7 B, C; + 4; - 4; *( C / A); // B = 3, o resto da diviso

Soma Subtrao Multiplicao Diviso Resto da diviso

Operadores Em C/C++ temos quatro classes de operadores: aritmticos, relacionais, lgicos e bit a bit. Alm disso, C tem alguns operadores especiais para tarefas particulares. Os operadores de incremento e decremento so muito teis. Por exemplo: x = x+1 o mesmo que ++x ou x++, assim como x = x-1 o mesmo que -- x ou x Apesar dos operadores de incremento e decremento poderem ser utilizados como prefixo ou sufixo do operando, h uma diferena quando so usados em expresses.

A tabela a seguir mostra a operadores mencionados anteriormente.

lista

de

precedncia

dos

You might also like