Você está na página 1de 27

Curso : Anlise e desenvolvimento de Sistemas

ALGORITMOS
CCT0001

Prof. Wellington Aguiar

Aula III

Linguagem de Programao C/C++

Histrico
Anos 70
- A Linguagem BCPL, desenvolvida por Martin Richards
- Influenciou Ken Thompson a criar a linguagem B,
- Dennis Ritchie no computador DEC PDP-11, usando o sistema
operacional UNIX criou a linguagem C

Anos 80
- Em 1980 enquanto trabalhava nos laboratrios Bell, Stroustrup
acrescentou vrias extenses linguagem C e chamou
inicialmente esta nova linguagem de C com classes.
-- Em 1983 o nome mudou para C++
-- Muitas novidades foram adicionadas ps-Stroustrup para que a
linguagem suportasse programao orientada a objetos
A Linguagem C/C++ case sensitive, isto , diferencia letras
minsculas de maiusculas.

Viso Geral da disciplina

Linguagem C/C++
Compilador x Interpretador
Programa Fonte em C/C++
#include <stdio.h>
int main(){
printf (Meu primeiro
programa em C!!!\n);
}

Compilador
Transforma o
programa fonte em
cdigo objeto ou
executvel

Programa Fonte em Basic


10 a= 10
20 b = 20
30 c = a + b
30 print c
40 end

Interpretador
Interpreta o cdigo
fonte em tempo de
execuo

Cdigo objeto
executvel

Linguagem C/C++
//Programa Fonte em C/C++
#include <stdio.h>
int main()
{ printf (Meu primeiro programa em C!!!\n); }
// Indica uma linha de comentrio
#include <stdio.h> Indica que deve ser incluida uma biblioteca auxiliar
int main() Indica o incio da funo principal do programa
{ Indica o incio das linhas de comando
printf(Meu primeiro programa em C!!!\n) Indica o comando de sada
; Indica o final de uma linha de comando
} Indica o fim das linhas de comando

//Estrutura de um programa em C/C++


#include <nome da biblioteca>
int main()
{ bloco de comandos; }

Declarao de variveis em C/C++


Os tipos de dados mais utilizados so :
Int para nmeros inteiros, exemplo : int X, Y; )
float para nmeros reais, exemplo : float M, N; )
char para um caractere , exemplo : char SEXO;)
- No existe um tipo para armazenar strings (cadeia de caractere)
Para isso deve-se utilizar um vetor com vrios elementos do tipo char

exemplo : char NOME [65];


Atribuio de valores :
X = 4;
Y = X + 2;
Necessrio inserir a biblioteca string.h
M = 2.67;
N = 3.1416;
SEXO = F; ou strcpy (NOME, Joo);
- Caractere apresentado entre apstrofos () e cadeia de caracteres
entre aspas duplas ().

Tipo de variveis em C/C++


Nome Bytes*

Descrio

Intervalo*
signed: -128 at 127
unsigned: 0 at 255
signed: -32768 at 32767
unsigned: 0 at 65535
signed:-2147483648 at
2147483647
unsigned: 0 at 4294967295

char

caractere ou nmero inteiro com tamanho de 8 bits.

short

nmero inteiro com tamanho de 16 bits.

long

nmero inteiro com tamanho de 32 bits.

int

Nmero inteiro. Seu tamanho tradicionalmente depende


no tamanho do tipo Word do sistema, assim no MSDOS
possui 16 bits, enquanto em sistemas de 32 bits (como
Windows 9x/2000/NT e sistemas que funcionam sob modo
protegido em sistemas x86) possui 32 bits (4 bytes).

float

nmero real.

double

nmero real com dupla preciso.

1.7e + / - 308 (15 digitos)

long
double

10

nmero real comprido com dupla preciso.

1.2e + / - 4932 (19 digitos)

bool

Valor boleano. Pode assumir um dos dois valores: true ou


false NOTA: esse um tipo que foi adicionado
recentemente pelo padro ANSI-C++. Nem todos os
compiladores suportam-no.

Veja short, long

3.4e + / - 38 (7 digitos)

true ou false

Comandos de ENTRADA em C/C++


cin >> X;
- Um valor digitado pelo usurio ser armazenado na varivel X.
at que encontre um espao. O restante ser desconsiderado.
gets(NOME); ou scanf(&X);
- Um ou vrios caracteres digitados pelo usurio ser armazenado na
varivel X.
- Armazena todos os caracteres at que seja digitado ENTER.

Comandos de SADA em C/C++


cout << X;
- Mostra o valor armazenado na varivel X
cout << Valor de X = << X;
- Mostra a mensagem e o valor armazenado na varivel X
printf(%d,Y);
- Mostra o nmero inteiro armazenado na varivel Y
printf(O valor de Y = %d,Y);
- Mostra a mensagem e o nmero inteiro armazenado na varivel Y
printf(O valor de Y = %5.2f,X);
- Mostra a mensagem e o nmero real armazenado na varivel X com
cinco inteiros e duas decimais.
Para incluir comentrios no programa
// comentrio de uma linha
/* comentario linha 1
comentrio linha 2
comentrio linha 3 */

Operadores relacionais em C/C++


==
!=
>
<
>=
<=

Igual a
Diferente de
Maior que
Menor que
Maior ou igual a
Menor ou igual a

(7 == 5)
(5 > 4)
(3 != 2)
(6 >= 6)
(3 <= 3)
(5 < 5)

Retorna false.
Retorna true.
Retorna true.
Retorna true.
Retorna true.
Retorna false.

Sendo a=2, b=3 e c=6,


(a == 5)
(a*b >= c)
(b+4 > a*c)
((b=2) == a)

Retornaria false.
Retornaria true j que (2*3 >= 6) verdadeiro.
Retornaria false j que (3+4 > 2*6) falso.
Retornaria true.

Operador condicional (?)


condio ? result1 : result2
7==5 ? 4 : 3
retorna 3 pois 7 no igual a 5.
7==5+2 ? 4 : 3 retorna 4 pois 7 igual a 5+2.
5>3 ? a : b
retorna a, pois 5 maior que 3.

Pseudocdigo x Cdigo em C/C++


Declarao de variveis :
var
inteiro IDADE;
real NOTA;
caractere CURSO;
logico ESCOLHA;
Incio de programa :
Incio

int IDADE;
float NOTA;
char CURSO;
bool ESCOLHA;

main() {

Comando de entrada de dados :


Leia (IDADE)

cin >> IDADE

Comando de sada :
Imprimir (IDADE)

cout << IDADE

Fim do programa :
FIM

Resto da diviso:
RESULTADO

NUM1 mod NUM2;

RESULTADO = NUM1 % NUM2;

NUM1 e NUM2 devem ser do tipo INTEIRO

Raiz quadrada : R = raiz(X)


Potencia
: P=A^B

Raiz quadrada : R = sqrt(X);


Potencia
: P = pow(A,B);

Para usar algumas funes matemticas necessrio incluir a linha:


# include <math.h>

Exemplo de Programa em C/C++


#include <stdio.h>
/* um programa com funo que retorna valores*/
int produto (int a, int b) {
return (a * b);
}
void main() {
int resposta;
resposta = produto (10, 11);
//atribui o valor de retorno
printf (A resposta %d\n, resposta);
}

Comando Condio Composta


Faa o algoritmo que leia as informaes de: horas trabalhadas pelo
empregado (HT), valor da hora trabalhada (VH). Calcular e apresentar o
salrio lquido do empregado, baseando-se nas tabelas abaixo:
OBS.:
Salrio Lquido = Salrio Bruto INSS
Salrio Bruto = Horas trabalhadas x Valor da hora trabalhada;
INSS = Alquota Salrio Bruto.
A alquota depende do Salrio Bruto e apresentada na tabela abaixo:
Salrio Bruto

Alquota

At R$ 1.174,86

8,00%

De R$ 1.174,87 at R$ 1.958,10

9,00%

De R$ 1.958,11 at R$ 3.916,20

11,00%

Para Salrio Bruto acima de R$ 3.916,20, o valor de desconto fixo e vale R$ 456,86
Tabela vigente desde 01/01/2011

Comando escolha
se (COND = 1) ento
escreva (Matemtica);
seno
se (COND = 2) ento
escreva (Portugus);
seno
se (COND = 3) ento
escreva (Fsica);
seno
se (COND = 4) ento
escreva (Biologia);
seno
escreva (Qumica);
fim_se
fim_se
fim_se
fim_se

Comando escolha
Comando Pseudocdigo
a) Comando escolha:

escolha (COND)
caso 1:
escreva (Matemtica);
caso 2:
escreva (Portugus);
caso 3:
escreva (Fsica);
caso 4:
escreva (Biologia);
caso 5:
escreva (Qumica);
fim_escolha

Comando Linguagem C++


switch (COND) {
case 1:
cout << "Matemtica ";
break;
case 2:
cout << "Portugus ";
break;
case 3:
cout << "Fsica ";
break;
case 4:
cout << "Biologia ";
break;
case 5:
cout << "Qumica ";
break;
default : cout<<Opcao errada;
}
Obs: O uso do comando break informa que ao encontrar a opo
escolhida, o programa deve ignorar o resto das opes e passar a executar o
prximo comando aps o comando switch.

Comando escolha Exerccio 1


Continuando o nosso programa principal, utilize o comando SWITCH para
tratar a opo do usurio :
Opo

Descrio da opo

Calcular a rea de um terreno

Calcular a mdia AV1, AV2 e AV3

Determinar se um nmero PAR ou IMPAR

Calcular Salrio Lquido (clculo do INSS)

Compra de produtos de informtica

Converter graus centgrados em fahrenheit

Aes de acordo com o semforo,

Comando escolha Algoritmo 5


Faa um programa em C++ que, tendo como dados de entrada o cdigo do
produto comprado (CP) e a quantidade comprada do produto (QTD),
apresente a descrio do produto comprado e quanto foi gasto nessa
compra. Os preos seguem a tabela abaixo:

Cdigo do Produto (CP)

Descrio do Produto

Preo

Informtica para Concursos

87,00

Java como Programar

219,00

Windows Vista

99,00

Excel Avanado

59,00

Adobe Photoshop

95,00

Comando escolha
Comando Pseudocdigo
a) Operadores Lgicos:
Operador e
se (VALOR >= 0 e VALOR <= 100) ento
escreva (Valor dentro da faixa);
seno
escreva (Valor fora da faixa);
fim_se
Operador ou
se (ESTADO = SP ou ESTADO = RJ)
ento
escreva ( paulista ou carioca);
seno
escreva (No paulista, nem carioca);
fim_se

Operador no
se (no ESTADO = SP) ento
escreva (Seja bem vindo!);
fim_se

Comando Linguagem C++


&&
if (VALOR >= 0 && VALOR <= 100)
{ cout << Valor dentro da faixa; }
else
{ cout << Valor fora da faixa;
}

||
if (ESTADO = = S || ESTADO = = R)
{ cout << paulista ou carioca; }
else
{ cout << No paulista, nem carioca; }
Obs: S corresponde a SP e R corresponde a RJ

!
if (!(ESTADO = = S))
{ cout << Seja bem vindo!; }
Obs: S corresponde a SP

Comando escolha Algoritmo 6


Faa um programa em C++ para converter a temperatura de graus
centgrados em fahrenheit, usando a frmula abaixo. Se a temperatura
em centgrados for abaixo de 10 ou acima de 35 informar PERIGO se no
informar OK.

C = 5/9 * (F 32)

F = 32 + (9/5)*C

Comando escolha Algoritmo 7


Faa um programa em C++ que indique o que o motorista deve fazer de
acordo com a cor do semforo (CS) e com a distncia do cruzamento (DC)
fornecidos pelo usurio. As condies so:
Semforo

(V) Vermelho
(A) Amarelo
(D) Verde

Ao

Parar
o

Se a distncia do cruzamento for menor que 5 metros = Passar com cuidado

Se a distncia do cruzamento for maior ou igual a 5 metros = Parar

Passar

Uso de Constantes
Constantes so variveis que recebem valores no incio do programa e
permanecem com este valor at o fim do programa.

/*Cdigo em C
#define PI 3,1415926536
#define ARQUIVO c:\arq.txt
#define SOMA 100+120;
a = PI;
printf(%s\n, ARQUIVO);
x = SOMA;

/*Cdigo que ser compilado,

a = 3,1415926536;
printf(%s\n, c:\arq.txt);
x = 100+120;;
/*Erro na linha acima!!!!!*/

Uso de funes
No exemplo abaixo a funo QUADRADO retorna o valor da quadrado do
parmetro passado para a funo.

#include <stdio.h>
void quadrado(int x) {
//o parmetro foi declarado dentro dos parnteses
printf (%d,x, elevado ao quadrado %d\n, x * x);
}
void main() {
int num;
num = 100;
quadrado(num);
//chama quadrado com o parmetro num
}

Uso de funes
No exemplo abaixo so passados dois parmetros para a funo MUL, que
vai apresentar o resultado do produto dos parmetros passados.
Quando usa-se VOID, significa que no tem valor de retorno.

#include <stdio.h>
void mul (int a, int b) {
printf (%d, a * b);
}
void main() {
mul (10, 11);
}

Uso de funes
No exemplo abaixo so passados dois parmetros para a funo MUL que
retornar o valor do produto destes parmetros atravs do comando
RETURN do tipo int.

#include <stdio.h>
/* um programa com funo que retorna valores*/
int mul (int a, int b) {
return (a * b);
}
void main() {
int resposta;
resposta = mul (10, 11);
//atribui o valor de retorno
printf (A resposta %d\n, resposta);
}

Exerccio
Calcule a rea em Vermelho recebendo apenas a largura do quadrado.

Exerccio
Sabendo-se que a rea do crculo calcula-se por : C = * R
Calcule a rea em Vermelho recebendo apenas a largura do quadrado.

Tabela de cdigos para o PRINTF


Cdigo
%c
%d
%i
%e
%E
%f
%g
\b
\f
\n
\r
\t
\
\
\0
\\
\v
\a
\N
\xN

Significado
Exibe um caractere
Exibe um inteiro em formato decimal
Exibe um inteiro
Exibe um nmero em notao cientfica (com e minsculo)
Exibe um nmero em notao cientfica (com E maisculo)
Exibe um ponto flutuante em formato decimal
Usa %e ou %f, o que for menor
Retrocesso
Alimentao de formulrio
Nova linha
Retorno de carro
Tabulao horizontal
Aspas
Apstrofo
Nulo
Barra invertida
Tabulao vertical
Sinal sonoro
Constante octal
Constante hexadecimal