linguagem c 01 - tópicos introdutórios

59
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Upload: fabio-alexandre-spanhol

Post on 28-Jun-2015

338 views

Category:

Technology


0 download

DESCRIPTION

Aula introdu

TRANSCRIPT

Page 1: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Page 2: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

O que é C?Linguagem de programação imperativa de

uso geralMédio nível: recursos que são suficientemente

de baixo nível para enfrentar as mais exigentes tarefas de programação de sistemas

Prof. Fabio Alexandre Spanhol, M. Sc. 2

Page 3: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Popularidade de CDesde sua criação uma das linguagens mais

usadas profissionalmenteambiente comercial e acadêmico

Prof. Fabio Alexandre Spanhol, M. Sc. 3

Page 4: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Pop

ula

rid

ade

de

C

Prof. Fabio Alexandre Spanhol, M. Sc. 4

Page 5: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

“Família” de CInfluenciou, direta ou indiretamente, várias outras

linguagensPython, Objective-C, Java, D, Go, C#, etc.C++ foi derivada inicialmente como um superconjunto de

C

Prof. Fabio Alexandre Spanhol, M. Sc. 5

Page 6: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

“Família” de CC foi influenciada e influenciou uma série de

linguagensALGOL 68

CPL (1963)

BCPL (1969)

B (1970)C (1971)

C++ (1985) ANSI C(1989)

Prof. Fabio Alexandre Spanhol, M. Sc. 6

Page 7: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

C foi criada no (NJ)

Prof. Fabio Alexandre Spanhol, M. Sc. 7

Background Histórico de C

Page 8: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Background Histórico de COriginalmente foi chamada NB e

posteriormente C, sendo projetada e implementada por Dennis Ritchie (1941-2011) no então AT&T Bell Laboratories entre 1969-1973

Prof. Fabio Alexandre Spanhol, M. Sc. 8

Page 9: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Prof. Fabio Alexandre Spanhol, M. Sc. 9

Page 10: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Background Histórico de CC deriva de CPL, BCPL, B e

ALGOL68CPL origina-se da Cambridge

University, início dos anos 1960BCPL é uma linguagem de sistemas

simples desenvolvida por Martin Richards (1940-) em 1966

Prof. Fabio Alexandre Spanhol, M. Sc. 10

Page 11: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Background Histórico de CA história de C está intimamente ligada ao do SO UNIX

O primeiro UNIX foi escrito em assembly (PDP-7)E a primeira linguagem de alto nível sob o UNIX foi a B, escrita por Ken Thompson (1943-)e baseada em BCPL

Prof. Fabio Alexandre Spanhol, M. Sc. 11

Page 12: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Background Histórico de CB foi implementada e projetada

por Ken Thompson Nem B nem BCPL possuam tipo,

todos os dados eram tratados como palavras de máquina

Problemas motivaram a criação de uma nova linguagem

*Desde 2006 Thompson trabalha na Google, sendo co-criador de Go

Prof. Fabio Alexandre Spanhol, M. Sc. 12

Page 13: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Background Histórico de C

Prof. Fabio Alexandre Spanhol, M. Sc. 13

Page 14: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Background Histórico de C

Prof. Fabio Alexandre Spanhol, M. Sc. 14

Ken Thompson was once asked what he would do differently if he were redesigning the UNIX system. His reply: "I'd spell creatwith an e."

Page 15: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

PadronizaçãoPor mais de uma década

o padrão de C foi o livro de Kernighan e Ritchie, The C ProgrammingLanguage (1978), a versão K&R C

Prof. Fabio Alexandre Spanhol, M. Sc. 15

Page 16: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Padronização: ISO/ANSI1983 – o American National Standards Institute

(ANSI) instituiu um comitê para padronizar a linguagem1989 - padronização finalizada, ANSI X3.159-1989,

conhecida como C89É maior base dos códigos escritos e versão suportada por

quase todos os compiladores atuaisNosso curso será focado nessa versão!

1990 – torna-se padrão ISO, conhecida como C90

Prof. Fabio Alexandre Spanhol, M. Sc. 16

Page 17: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Padronização: ISO/ANSI1999 – padrão C99 adiciona funções inline, novos

tipos de dados (como complex), arrays de tamanho variável, comentários com //, etc.

Não é suportado por todos os compiladores e alguns, parcialmente

2011 – o padrão iniciado em 2007, conhecido como C1X, é publicado e passa a ser conhecido como C11

novas features, macros de tipo genérico, estruturas anônimas, suporte melhorado a Unicode, operações atômicas, multi-threading, compatibilidade melhorada com C++ e etc.

Prof. Fabio Alexandre Spanhol, M. Sc. 17

Page 18: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Motivaçãoconhecimento prévio de C, embora não

indispensável, representa uma vantagem para quem está interessado em programar em C++ e Java

C é ideal para “turbinar” outras linguagenspadrão ANSI para C existe desde 1989

o código escrito neste padrão tem validade em qualquer ambiente compatível

Prof. Fabio Alexandre Spanhol, M. Sc. 18

Page 19: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Motivaçãoprogramador C é um profissional valorizado

em todo o mundocódigo C existente representa um patrimônio de

muitos milhões de dólares• não pode ser simplesmente abandonado ou convertido

em outras linguagens• conversão exigirá o trabalho de profissionais com

excelente base em C

Prof. Fabio Alexandre Spanhol, M. Sc. 19

Page 20: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

MotivaçãoA API MS-Windows foi especificada

originalmente em C O Kernel Linux é implementado em C C está estreitamente relacionada com tudo

que diz respeito ao mundo Unix

Prof. Fabio Alexandre Spanhol, M. Sc. 20

Page 21: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

MotivaçãoC continua sendo a preferida

para o desenvolvimento de sistemas embarcados (embedded systems)

software que controla automóveis, fornos de microondas, aparelhos de Blu-Ray e outros dispositivos não-computacionais

Prof. Fabio Alexandre Spanhol, M. Sc. 21

Page 22: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Características de CC é uma linguagem criada por programadores

para programadoresProceduralModularizada (com funções)CientíficaFlexívelCase sensitive

Prof. Fabio Alexandre Spanhol, M. Sc. 22

Page 23: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Keywords de CO padrão C89 tem 32

Prof. Fabio Alexandre Spanhol, M. Sc. 23

autobreakcasecharconstcontinuedefaultdo

doubleelseenumexternfloatforgotoif

intlongregisterreturnshortsignedsizeofstatic

structswitchtypedefunionunsignedvoidvolatilewhile

Page 24: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

CompiladoresExistem vários compiladores C, proprietários

e abertos, multiplataforma, etc.GCC CClangVisual-CLabWindows/CVIIntel ICCEtc.

Prof. Fabio Alexandre Spanhol, M. Sc. 24

Page 25: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

CompiladorVamos adotar o compilador

GCC (Gnu Compiler Collection) C, do projeto GNU licenciado sob GPL

oferece front ends para C, C++, Objective-C, Fortran, Java, Ada e Gohttp://gcc.gnu.org/

Prof. Fabio Alexandre Spanhol, M. Sc. 25

Page 26: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Como Compilar?Na linha de comando (Linux-like)gcc arquivo.c –o arquivo

*inclui as etapas de pré-processamento, compilação, montagem e ligação**Sem o parâmetro -o, o padrão é gerar um executável

chamado a.out

Prof. Fabio Alexandre Spanhol, M. Sc. 26

Page 27: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Como Compilar?E naquele outro sistema operacional?

Use por sua conta e risco!Existem ports como MinGW e Cygwin

Prof. Fabio Alexandre Spanhol, M. Sc. 27

Page 28: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

IDE?Muitos!

• Vim• TextMate• Code::Blocks• Sublime• Geany• Aptana• NetBeans• MS-Visual Studio• Eclipse• SlickEdit• Source Insight• Etc.

Prof. Fabio Alexandre Spanhol, M. Sc. 28

Page 29: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

ComentáriosSão ignorados pelo compiladorUtilizados para documentar o código-fonte/* comentario de

varias linhas.*/

// para comentário de uma linha, a partir do padrão C99

Prof. Fabio Alexandre Spanhol, M. Sc. 29

Page 30: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Um Hello World em C

Prof. Fabio Alexandre Spanhol, M. Sc. 30

Page 31: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

E/S em CNão existem comandos internos para

efetuar entrada e saídaMas, há a biblioteca padrão (C Standard

Library) stdio.h que fornece recursos para manipulação de E/S

Define macros, constantes, variáveis e dezenas de funções para manipulação de arquivos

• Conceito de stream de bytes

Prof. Fabio Alexandre Spanhol, M. Sc. 31

Page 32: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

E/S em CNo modelo oriundo do Unix e adotado por C,

stream é uma fonte ou destino de dadosTrês streams padrão estão disponíveis para o

programa: stdin – entrada, normalmente tecladostdout – saída, normalmente terminal de vídeostderr – erros, normalmente terminal de vídeo

Prof. Fabio Alexandre Spanhol, M. Sc. 32

Page 33: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

E/S em CMapeamento das streams padrão

Prof. Fabio Alexandre Spanhol, M. Sc. 33

Page 34: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Saída em Terminais TextoSaída básica feita com a função printf,

definida em stdio.h

Lê os dados de uma origem, formata e escreve em stdoutO parâmetro format é uma string indicando como os

dados devem ser interpretadosO retorno é a quantidade de caracteres escritos ou um

valor negativo, em caso de erroProf. Fabio Alexandre Spanhol, M. Sc. 34

Page 35: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Função printfCaracteres especiais (como quebra de linha)

devem ser incluídos na string format com sequências de escape: \c, sendo c um caractere

Prof. Fabio Alexandre Spanhol, M. Sc. 35

Sequência resultado\n nova linha\r retorno de carro\t tabulação horizontal\\ barra invertida\' apóstrofo\" aspas

Page 36: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Função printfNo parâmetro format podem ser usados

caracteres de conversão% seguido de um caractere

Prof. Fabio Alexandre Spanhol, M. Sc. 36

caractere significadoc Caractere únicos stringd ou i inteiroF ou f flutuanteE ou e Flutuante notação exponencialo octalX ou x hexadecimal

Page 37: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Função printfAlguns caracteres de conversão em format

aceitam sinalizadores que modificam o comportamento padrão

Prof. Fabio Alexandre Spanhol, M. Sc. 37

Flag Ação- Justificado à esquerda+ Justificado à direita. Precisão quando aplicado em flutuantesdígitos Define o tamanho do campo com o valor0 Completa o campo com zeros ao invés de espaços

Page 38: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Função printf: RetornoExemplo 1

Prof. Fabio Alexandre Spanhol, M. Sc. 38

Page 39: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Função printf: Formatação

Prof. Fabio Alexandre Spanhol, M. Sc. 39

Page 40: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Entrada em Terminais TextoEntrada básica feita com a função scanf,

definida em stdio.h

Lê os dados de stdin, interpreta e armazena em uma

posição de memóriaO parâmetro format é uma string indicando como os

dados devem ser interpretadosO retorno é a quantidade de caracteres atribuídos ou um EOF, em caso de erro

Prof. Fabio Alexandre Spanhol, M. Sc. 40

Page 41: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Função scanfNo parâmetro format podem ser usados

caracteres de formatação% seguido de um caractere

Prof. Fabio Alexandre Spanhol, M. Sc. 41

caractere significadoc Caractere únicos String SEM espaçod ou i inteiroF, f, G, g, E,e, A, a

flutuante

u Inteiro sem sinalo octalx hexadecimal

Page 42: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Tipos de Dados em CSomente 5 tipos primitivos

char – um byte simples (8-bits) para armazenar um caractere ASCII int – valor inteiro, baseado no tamanho da palavra da

máquina (geralmente 32-bits)float – um ponto flutuante de precisão simples

(normalmente 32-bit, IEEE)double – um ponto flutuante de precisão dupla

(normalmente 64-bit, IEEE)void – valor “vazio”• Usado em retornos de funções e ponteiros genéricos

Prof. Fabio Alexandre Spanhol, M. Sc. 42

Page 43: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Tamanhos de InteirosDois qualificadores controlam o tamanho dos inteiros

short int – versão ‘curta’ de um intlong int – versão ‘longa’ de um int

Regrasshort int <= int <= long intshort int >= 16 bitsint >= 16 bitslong int >= 32 bits

Prof. Fabio Alexandre Spanhol, M. Sc. 43

Page 44: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Tipos e Tamanhos

Prof. Fabio Alexandre Spanhol, M. Sc. 44

Page 45: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Sinalização de InteirosQualificadores para inteirosunsigned – interpreta o valor iniciando em 0• unsigned aumenta a faixa de valores disponíveis, use

quando tiver certeza que não existirão negativossigned – permite números negativos

*Cuidado: Misturar valores unsigned e signed pode gerar bugs!

Prof. Fabio Alexandre Spanhol, M. Sc. 45

Page 46: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Booleanos em C?Não há um tipo booleano em C!

Booleanos são implementados e avaliados como valores inteiro

• TRUE = 1• FALSE = 0

Convenção• 0 = FALSE• Não-zero = TRUE

Prof. Fabio Alexandre Spanhol, M. Sc. 46

Page 47: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

VariáveisVariáveis são rótulos simbólicos para

posições de memória

Definidas porIdentificadorTipo de dados

Em C, variáveis precisam ser declaradas antes de serem utilizadas!

Prof. Fabio Alexandre Spanhol, M. Sc. 47

Page 48: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Variáveis: DeclaraçãoPodem ser declaradas fora da função main

ou depois de da abertura de um bloco (após o {)

Sintaxe:<tipo_dado> <lista_de_identificadores>

Ex.:

Prof. Fabio Alexandre Spanhol, M. Sc. 48

Page 49: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

ConstantesConstantes são valores rotulados,

como variáveis, mas imutáveis (somente leitura) durante toda a execução do programa

Evite o uso de números mágicos, use constantes!

Podem ser criadas• 1) Qualificando variáveis com const• 2) Usando a diretiva #define

Prof. Fabio Alexandre Spanhol, M. Sc. 49

Page 50: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

ConstantesUma constante pode ser usada em qualquer

operação que não altere o valor da mesmaExemplos com const

Prof. Fabio Alexandre Spanhol, M. Sc. 50

Page 51: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

ConstantesTambém é possível usar a diretiva de pré-

processamento #define criando uma macro Use com cautela

• Macro substituição, não há tipagem• não podem ser referenciados diretamente depois• Não são acessíveis ao debbuger

Vantagem: menor espaço em memóriaPode ser interessante para sistemas limitados

Prof. Fabio Alexandre Spanhol, M. Sc. 51

Page 52: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

ConstantesAs macros são expandidas pelo pré-

processadorA ocorrência do identificador é substituída pela constanteExemplos com #define

Prof. Fabio Alexandre Spanhol, M. Sc. 52

Page 53: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Operadores Aritméticos

Prof. Fabio Alexandre Spanhol, M. Sc. 53

Avaliam e retornam um valor numéricoOperador Descrição Sintaxe+ Adição a + b

- Subtração a - b

* Multiplicação a * b

/ Divisão a / b

% Resto da divisão inteira (módulo) a % b

++ Incremento. Versão pré e pós fixada ++a oua++

-- Decremento. Versão pré e pós fixada ++a oua++

Page 54: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Operadores Relacionais

Prof. Fabio Alexandre Spanhol, M. Sc. 54

Avaliam e retornam um valor booleano

Operador Descrição Sintaxe== Igual a a == b

!= Não igual a, diferente de a != b

> Maior que a > b

< Menor que a < b

>= Maior ou igual a a >= b

<= Menor ou igual a a <= b

Page 55: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Operadores Lógicos

Prof. Fabio Alexandre Spanhol, M. Sc. 55

Avaliam e retornam um valor booleano

Operador Descrição Sintaxe! Negação lógica, NÃO !a

&& Conjunção lógica, E a && b

|| Disjunção lógica, OU a || b

Page 56: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Operadores Bit-a-bit

Prof. Fabio Alexandre Spanhol, M. Sc. 56

Operam sobre os bits individuais do operando

Operador Descrição Sintaxe~ Negação lógica ~a

&& E lógico a & b

| Ou lógico a | b

^ Ou exclusivo (XOR) a ^ b

>> Deslocamento à direita a >> b

<< Deslocamento à esquerda a << b

Page 57: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Operadores Bit-a-bitNo trecho de código seguinte,

a expressão a && b resulta 1 (valor lógico verdade) e a & b resulta 4

Prof. Fabio Alexandre Spanhol, M. Sc. 57

Page 58: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

AtribuiçãoValores constantes, resultados de chamadas

de funções ou resultados de expressões podem ser armazenados em variáveis usando o operador de atribuição (=)

Prof. Fabio Alexandre Spanhol, M. Sc. 58

Page 59: Linguagem C 01 - Tópicos Introdutórios

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Atribuição CombinadaO operador de atribuição pode ser combinado com

os operadores aritméticos e bit-a-bit, compactando a instrução

Prof. Fabio Alexandre Spanhol, M. Sc. 59

Instrução Substituição Possívela = a + b a += ba = a - b a -= ba = a * b a *= ba = a / b a /= ba = a % b a %= ba = a & b a &= ba = a || b a ||= b...