Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
OPERADORES
ARITMÉTICOS ESPECIAIS
UTILIZANDO OPERADORES
ARITMÉTICOS EM C++
Operadores de Incremento e Decremento
Padrão:
x = x + 1 x++ ou ++x
x++ => Formato pós-fixado
++x => Formato pré-fixado
x = x - 1 x-- ou --x
x-- => Formato pós-fixado
--x => Formato pré-fixado
UTILIZANDO OPERADORES
ARITMÉTICOS EM C++
Operadores aritméticos que abreviam atribuições
também podem ser utilizados:
x+=3 x = x + 3
X-=5 x = x – 5
x*=3 x = x * 3
x/=3 x = x / 3
x%=3 x = x % 3
ESTRUTURAS DE REPETIÇÃO
Def.: Permitem que determinados blocos de código
sejam repetidos enquanto certas condições forem
obedecidas
Em C ocorrem em três formatos:
while
do...while
for
ESTRUTURAS DE REPETIÇÃO
while: Repete determinado bloco de código
enquanto um teste for verdadeiro
Sintaxe em L.A.:
Enquanto <teste> faça
Início
...
Fim_Enquanto
Sintaxe em C:
while (teste)
{
...
}
WHILE - EXEMPLO
Implemente um algoritmo que liste os valores inteiros
entre 1 e 1000.
#include <iomanip.h>
main()
{
int i=1;
while(i<=1000)
{
cout << i << “ “;
i++;
}
}
DO...WHILE
Repete determinado bloco de código enquanto
um teste for verdadeiro. Este teste, entretanto,
é verificado no final do bloco de repetição, o
que garante que a repetição ocorrerá sempre
pelo menos uma vez
Sintaxe em L.A.:
Faça
...
Enquanto <teste>
Sintaxe em C:
do{
...
}while(teste);
DO...WHILE - EXEMPLO
Implemente um algoritmo que liste os valores inteiros
entre 1 e 1000.
#include <iomanip.h>
main()
{
int i=1;
do{
cout << i << “ “;
i++;
} while(i<=1000);
}
FOR
Repete determinado bloco de código enquanto uma condição
for verdadeira
Sintaxe em L.A.:
Para(Área_Inicialização;Área_Teste;Área_Incremento)
Início
...
Fim_Para
Sintaxe em L.A.:
for(Área_Inicialização;Área_Teste;Área_Incremento)
{
...
}
Área_Inicialização: Sempre executada uma únca vez e como primeira
operação da execução da repetição “for”
Área_Teste: É sempre executada imediatamente antes do início de cada
repetição e, caso a sua execução resulte em um valor verdadeiro, a
repetição ocorrerá novamente. Caso contrário, a repetição será finalizada
Área_Incremento: É sempre executada imediatamente após o término de
cada repetição e imediatamente antes da área de teste
FOR - EXEMPLO
Implemente um algoritmo que liste os valores
inteiros entre 1 e 1000.
#include <iomanip.h>
main()
{
int i;
for(i=1;i<=1000;i++)
{
cout << i << “ “;
}
}
FOR – OUTROS EXEMPLOS
Nenhuma das áreas do “for” é obrigatória
#include <iomanip.h>
main()
{
int i=1;
for(;i<=1000;)
{
cout << i << “ “;
i++;
}
}
FOR – OUTROS EXEMPLOS
É possível ter mais de uma instrução em cada
área do “for”, desde que separadas por vírgulas
#include <iomanip.h>
main()
{
int a,b;
for(a=1,b=1;a+b<=100;a++,b++)
{
cout << a+b << “ “;
}
}
FOR – OUTROS EXEMPLOS
Cuidado com o uso da área de testes... Você
pode gerar repetições infinitas (loops infinitos)
#include <iomanip.h>
main()
{
for(;;)
{
cout << “LOOP INFINITO“;
}
}
VARIÁVEIS COMPOSTAS E HOMOGÊNEAS
VETORES
MATRIZES
E
STRINGS
VARIÁVEIS COMPOSTAS E UNIFORMES
VETORES E MATRIZES
São variáveis capazes de armazenar mais de um
valor ao mesmo tempo, guardando a restrição de
que estes valores devem ser do mesmo tipo
Sintaxe de declaração:
tipo varivel[DIM1][DIM2]…[DIMn]
Ex.:
int v[10];
VARIÁVEIS COMPOSTAS E UNIFORMES
VETORES E MATRIZES
No exemplo dado, “v” é uma variável composta
e homogênea capaz de armazenar 10
elementos, sendo todos eles do tipo int
Graficamente poderíamos visualizar esta
variável da forma que se segue:
A variável “v” possui todos estes valores que
podem ser acessados através do padrão
definido a seguir:
10 21 1 -2 11 -9 0 12 40 99
0 1 2 3 4 5 6 7 8 9
VARIÁVEIS COMPOSTAS E UNIFORMES
VETORES E MATRIZES
v[0] => 10
v[4] => 11
v[9] => 99
Os valores entre os colchetes são chamados de
índices ou posições e indicam a posição do
elemento que se deseja acessar de “v”. Em C, a
primeira posição de um elemento de um vetor
sempre é zero
Variáveis Compostas e Homogêneas com uma
dimensão (como a variável “v”) são comumente
chamadas de VETORES
10 21 1 -2 11 -9 0 12 40 99
0 1 2 3 4 5 6 7 8 9
VARIÁVEIS COMPOSTAS E UNIFORMES
VETORES E MATRIZES
Vamos agora a dois exemplos de variáveis
compostas e homogêneas de mais de uma
dimensão:
float m1[3][3];
int m2[3][3][2];
Representando graficamente, teríamos:
2.1 6.4 4.1
3.45 -34 -2.3
-6.7 51.2 10.4
0 1 2
0
1
2
80 970 481
3.45 -34 6
-6.7 51.2 9
0 1 2
0
1
2
8 6 -11
7 34 34
0 -1 -45
m1 m2
Pg. 0
Pg. 1
VARIÁVEIS COMPOSTAS E UNIFORMES
VETORES E MATRIZES
O acesso a cada um dos valores de “m1” e “m2”se dá pelos padrões
abaixo:
m1[0][0] => 2.1 m2[0][0][0] => 8
m1[2][1] => -2.3 m2[2][1][0] => 34
m1[1][2] => 51.2 m2[0][0][1] => 80
m1[2][2] => 10.4 m2[2][2][1] => 9
Neste exemplo foi convencionado que a primeira dimensão seria a
coluna, a segunda seria a linha e a terceira seria a página,
entretanto isto é a penas uma convenção. Para a máquina não
existe representação gráfica, e sim quantidade de elementos. Sendo
assim, quem define o que significa cada dimensão é o desenvolvedor
Variáveis compostas e homogêneas de mais de uma dimensão são
comumente chamadas de MATRIZES
EXEMPLO
#include <iomanip.h>
main()
{
float m[3][3], s=0;
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
cout << “Entre com um valor:”;
cin >> m[i][j];
s+=m[i][j];
}
}
cout <<”Soma de todos os valores é:”<<s;
}
VARIÁVEIS COMPOSTAS E UNIFORMES
VETORES E MATRIZES
Em C, vetores e matrizes podem ser inicializadas
no momento de suas declarações. Por exemplo:
int v[5] = {1,3,5,7,8};
int m[2][2] = { {2,2}, {3,4} };
Também é possível inicializar apenas parte dos
elementos. Por exemplo:
int v[5] = {5};
Inicializa apenas o primeiro elemento (índice = 0) com 5.
Os demais elementos são inicializados com ZEROS.
Para inicializarmos todos os elementos com
ZEROS, podemos fazer:
int v[100] = {0};
VARIÁVEIS COMPOSTAS E UNIFORMES
STRINGS
Uma string é uma variável especial que
hora se comporta como variável simples,
quando recebe um texto como entrada, por
exemplo, hora se comporta como variáves
composta, quando acessamos e/ou
manipulamos cada caractere do texto
individualmente
Em C uma string é um vetor de
caracteres:
char s[10];
VARIÁVEIS COMPOSTAS E UNIFORMES
STRINGS
Toda string em C++ é finalizada com um caractere de
escape que referencia o valor nulo: „\0‟. Por exemplo,
seja a string “s” com o texto a seguir:
Quando se comporta como variável simples,
analisamos a string pelo seu texto inteiro:
“CASA”
Observe que o mesmo é finalizado com o „\0'
Quando se comporta como um vetor, analisamos a
string caractere a caractere:
s[0] => „C‟
s[3] => „A‟
s[4] => „\0‟
‘C’ ‘A’ ‘S’ ‘A’ ‘\0’ ‘x’ ‘2’ ‘$’ ‘^’ ‘&'
VARIÁVEIS COMPOSTAS E UNIFORMES
STRINGS
É importante observarmos que o caractere „\0‟
ocupa uma posição válida da string.
Sendo assim, se você precisa criar uma string que irá
ocupar 100 bytes, lembre-se de reservar um a mais
para o „\0‟, o que daria 101 bytes
Ex.: char s[101];
VARIÁVEIS COMPOSTAS E UNIFORMES
STRINGS
É possível realizar a inicialização de
strings no momento de sua declaração.
Por exemplo:
char x[10] = “Xyz”;
Também é possível criarmos uma string
sendo inicializada com uma dimensão do
tamanho da string para ela inicializada.
char z[] = “ABC”;
Esta variável terá 4 bytes (considerando o byte
para o „\0‟)
‘X’ ‘y’ ‘z’ ‘\0' ‘a’ ‘x’ ‘2’ ‘$’ ‘^’ ‘&'
FUNÇÕES DE MANIPULAÇÃO DE STRINGS
Existem em grande quantidade e
encontram-se definidas na biblioteca
string.h
Para os nossos propósitos vamos analizar
as listadas abaixo:
puts
gets
strlen
strcat
strcpy
strcmp
FUNÇÕES DE MANIPULAÇÃO DE STRINGS
puts: Escreve uma string na tela e provoca uma
quebra de linha ao término da escrita
Sintaxe: puts(string)
Ex.: puts(“Entre com 10 valores:”);
Provoca a saída do texto entre aspas na tela
FUNÇÕES DE MANIPULAÇÃO DE STRINGS
gets: Pára a execução de um programa e espera
pela entrada de um texto qualquer a ser
armazenado em uma string
Sintaxe: gets(variável_string)
Ex.:
…
char s[200];
puts(“Entre com um texto qualquer:”);
gets(s);
…
FUNÇÕES DE MANIPULAÇÃO DE STRINGS
strlen: Conta o número de caracteres de uma
string
Sintaxe: NumCaracteres = strlen(string)
Ex.:
…
char s[200];
int i;
puts(“Entre com um texto qualquer:”);
gets(s);
n=strlen(s); // n será igual ao número de caracteres
de s
…
FUNÇÕES DE MANIPULAÇÃO DE STRINGS
strcat: Junta ou concatena duas strings
Sintaxe: strcat(string_dest, string_origem)
Ex.:
…
char s1[30] = “abc”, s2[30]=“def”;
strcat(s1,s2); // s1 passa a valer “abcdef”
…
FUNÇÕES DE MANIPULAÇÃO DE STRINGS
strcpy: Copia o conteúdo de uma string sobre o
conteúdo de outra string
Sintaxe: strcpy(string_dest, string_origem)
Ex.:
…
char s1[30] = “111”, s2[30]=“222”;
strcpy(s1,s2); // o texto de s1 é sobreposto
// e passa a ser “222”
…
FUNÇÕES DE MANIPULAÇÃO DE STRINGS
strcmp: Compara o conteúdo de duas strings. Se as duas forem
iguais, esta função retornará ZERO. Se elas forem diferentes, ela
retornará um valor diferente de zero.
Sintaxe: strcmp(string1, string2)
Ex.:
…
char s1[200], s2[200];
puts(“Entre com um texto qualquer:”);
gets(s1);
puts(“Entre com outro texto qualquer:”);
gets(s2);
if(strcmp(s1,s2)==0)
puts(“Textos iguais”);
else
puts(“Textos diferentes”);
…