© m@nso 2003 introdução à programaçãocomputadores e programação i linguagens de...
TRANSCRIPT
![Page 1: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/1.jpg)
© M@nso 2003
Introdução à programação Computadores e programação I
Linguagens de Linguagens de programaçãoprogramação
Introdução ao C
![Page 2: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/2.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
SumárioSumário Execução de programas
interpretadores, compiladores Linguagem
Manipulação de informação Variáveis tipos de dados
Operadores aritméticos, lógicos
Leitura e escrita entrada e saída de dados
Selecção de instruções Instrução if Instrução Switch
Erros em programação
![Page 3: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/3.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Interpretação de ProgramasInterpretação de Programas
Basic, Java, Portugol
interpretadorinterpretador
Programa que Programa que converte as converte as instruções da instruções da linguagem de linguagem de alto nível em alto nível em instruções instruções máquina e as máquina e as executa.executa.
Programa que Programa que converte as converte as instruções da instruções da linguagem de linguagem de alto nível em alto nível em instruções instruções máquina e as máquina e as executa.executa.
![Page 4: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/4.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Compilação de programasCompilação de programas
C,C++, Pascal
Compilador (compiler)Compilador (compiler)
Programa que Programa que converte as converte as instruções da instruções da linguagem de alto linguagem de alto nível em instruções nível em instruções máquina formando máquina formando um programa um programa objectoobjecto
Programa que Programa que converte as converte as instruções da instruções da linguagem de alto linguagem de alto nível em instruções nível em instruções máquina formando máquina formando um programa um programa objectoobjecto
Ligador (linker)Ligador (linker)
Programa que Programa que reúne todos os reúne todos os programas objecto programas objecto e faz um programa e faz um programa executávelexecutável
Programa que Programa que reúne todos os reúne todos os programas objecto programas objecto e faz um programa e faz um programa executávelexecutável
ProgramasProgramas
Executados pelo Executados pelo sistema operativosistema operativo
Executados pelo Executados pelo sistema operativosistema operativo
![Page 5: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/5.jpg)
© M@nso 2003
Introdução à programação Computadores e programação I
Introdução à linguagem Introdução à linguagem CC
![Page 6: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/6.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Porquê C++Porquê C++
É a base de linguagens de programação modernas
É um investimento Linguagem estandardizada Muitos programas escritos em C / C++
È uma linguagem genérica Serve para vários fins
É disciplinadora Programar com método
É eficiente Existem bons compiladores
![Page 7: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/7.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Ola mundoOla mundo #include <stdio.h>#include <stdio.h>
Biblioteca de funções de entrada e saida de dados int main(int argc, char* argv[])int main(int argc, char* argv[])
Função principalFunção principal { }{ }
Definição de um bloco de instruçõesDefinição de um bloco de instruções printf("ola mundo");printf("ola mundo");
escreverescrever return 0;return 0;
Retorno do programaRetorno do programaOlá mundoOlá mundo
#include <stdio.h>#include <stdio.h>int main(int argc, char* argv[])int main(int argc, char* argv[]){{ printf("ola mundo")printf("ola mundo");; return 0return 0;;}}
#include <stdio.h>#include <stdio.h>int main(int argc, char* argv[])int main(int argc, char* argv[]){{ printf("ola mundo")printf("ola mundo");; return 0return 0;;}}
![Page 8: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/8.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Algoritmos computacionaisAlgoritmos computacionais
Acções de um algoritmo computacional Manipular dados
Receber dados Guardar dados Imprimir dados
Executar instruções Fazer operações aritméticas Fazer operações lógicas Escolha entre várias instruções. Repetir um conjunto de instruções
![Page 9: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/9.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Tipos de dados em CTipos de dados em C
Simples Numéricos
inteiros reais
Caracter Lógico
Compostos Matrizes Estruturas Uniões
D0variável
11100 11100
D0variável
lógico
VERDADEIRO0100 0001
D0 variável caracter
A0100 0001
Variáveis Um nome Um Tipo Um só valor
A0 inteiro
50 000100 0001 0100 0001
Nome da variável
C Real
-3,14156100 0001 100 0001
Nome da variável
0100 0001 0100 0001
![Page 10: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/10.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Declaração de variáveisDeclaração de variáveis Tipo_de_dado nome_da_variável; Tipo_de_dado nome_da_variável = valor_inicial;• Tipo_de_dado nome_da_variável1,
nome_da_variável2, . . .;
NOTANOTA
A declaração das variáveis deve ser feita antes da sua utilizaçãoA declaração das variáveis deve ser feita antes da sua utilização
ExemplosExemplos
int int somasoma;;float float saldosaldo = = 0.00.0;;doule doule x, y, zx, y, z;;
int int somasoma;;float float saldosaldo = = 0.00.0;;doule doule x, y, zx, y, z;;
![Page 11: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/11.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Regras dos nomes de variáveisRegras dos nomes de variáveis Pode ser constituído por letras do alfabeto por
dígitos e pelo caracter _ (underscore) O primeiro caracter não pode ser um dígito As letras maiúsculas e minúsculas representam
caracteres diferentes Não pode ter o nome de uma palavra reservado da
linguagem Deve ser descritivo daquilo que armazena
Caso tenha mais que uma palavra utilizar o caracter _ para unir as palavras ou capitular as iniciais
Não é aconselhado A utilização de caracteres acentuados Começar por _ Ter apenas letras maiúsculas
![Page 12: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/12.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Palavras reservadas do CPalavras reservadas do C
![Page 13: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/13.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Atribuição de Valores – operador =Atribuição de Valores – operador =
NOTANOTA
O operado = é o operador de atribuição e significa que a variável passa a ter um novo valor (<- no portugol)
O operador == (igual) é o operador de comparação e devolve verdadeiro ou falso ( = no portugol)
O operado = é o operador de atribuição e significa que a variável passa a ter um novo valor (<- no portugol)
O operador == (igual) é o operador de comparação e devolve verdadeiro ou falso ( = no portugol)
ExemplosExemplos
soma soma == 10 ; 10 ;
saldo saldo == soma + 1;soma + 1;
area area == lado1 * lado2; lado1 * lado2;
soma soma == 10 ; 10 ;
saldo saldo == soma + 1;soma + 1;
area area == lado1 * lado2; lado1 * lado2;
variavel =
expressão;
![Page 14: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/14.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Atribuição de valoresAtribuição de valores Valores na Base:
Decimal numeração normal
00 22 63638383
Octal Começam por 0 (zero)
0000 0022 007777 00123123 Hexadecimal
Começam por 0x (zero xis) 0x0x00 0x0x22 0x0x3f3f 0x0x5353
atribuição do valor doze a xatribuição do valor doze a x
X = 12;X = 12;X = 014;X = 014;X = 0xC;X = 0xC;
X = 12;X = 12;X = 014;X = 014;X = 0xC;X = 0xC;
![Page 15: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/15.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Inteiros - intInteiros - int Sinal
signed – positivos e negativos 1 bit para representar o sinal
unsigned – apenas números positivos Tamanho
short – menor dimensão em bytes 2 bytes
long – maior dimensão em bytes 4 bytes
Exemplos unsigned short int x; signed short int y; unsigned long int total; long int votos; int nota;
NOTANOTApor defeito os inteiros são:
•signed•16 bits
•short•32 bits
•long
por defeito os inteiros são:
•signed•16 bits
•short•32 bits
•long
![Page 16: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/16.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Alcance dos inteirosAlcance dos inteiros
![Page 17: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/17.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
exemplosexemplos Nota final da disciplina de IP
unsigned short int nota; unsigned short nota;
Soma das notas das disciplinas de uma aluno unsigned short int somaNotas; unsigned short somaNotas;
Número de segundos de vida de uma pessoa unsigned long int numMinutos; unsigned long numMinutos;
Diferença entre o número de segundos de duas pessoas
signed long difSegundos; long difsegundos;
Diferença entre o número de anos de duas pessoas signed short int difAnos; short difAnos;
![Page 18: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/18.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Números ReaisNúmeros Reais
Tipo float double
Representação Base e Mantissa
notação Notação corrente
1.23 .23 0.23 1.1.0
Notação científica 1.2E10 1.23e-15
Modificadores long
ExemploExemplo
float raio = .50;float raio = .50;long double taxa = 5E-2 ;long double taxa = 5E-2 ;
float raio = .50;float raio = .50;long double taxa = 5E-2 ;long double taxa = 5E-2 ;
base mantissa
102.8
NOTANOTA
Os números armazenados em virgula flutuante podem comportar um erro de arredondamento resultante da sua representação
Os números armazenados em virgula flutuante podem comportar um erro de arredondamento resultante da sua representação
![Page 19: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/19.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Erro nos Números ReaisErro nos Números Reais
NOTANOTA
Os números armazenados em virgula flutuante podem comportar um erro de arredondamento resultante da sua representação
Os números armazenados em virgula flutuante podem comportar um erro de arredondamento resultante da sua representação
![Page 20: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/20.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Caracteres (char)Caracteres (char) Ocupam um byte
256 caracteres disponíveis Representados por um número
Tabela ASCII Atribuição
Utilização do caracter plica (‘) char sexo = ‘m’;char sexo = ‘m’; char enter =‘\n’char enter =‘\n’
Utilização directa do código ASCII
char letra = 98; char letra = 98;
Modificadores signed unsigned
\a Sinal sonoro
\n New line
\r Carriage return
\v Vertical tabulation
\t Horizontal tabulation
\\ Caracter \
\’ Caracter ‘
\” Caracter “
\b Backspace
\0xff
Caracter 0xff ASCII
Caracteres especiais
![Page 21: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/21.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Tabela ASCIITabela ASCII
ExemploExemplo
char sexo;char sexo;
Sexo = ‘M’;Sexo = ‘M’;
Sexo = 77;Sexo = 77;
char sexo;char sexo;
Sexo = ‘M’;Sexo = ‘M’;
Sexo = 77;Sexo = 77;
![Page 22: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/22.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Definição de tipos - Definição de tipos - EnumeraçõesEnumerações
enum semana{ segunda=2, terca=3, quarta=4, quinta=5, sexta=6, sabado=7, domingo=8 };
segu
nda
terç
a
quar
ta
quin
ta
sext
a
saba
do
dom
ingo
-3 -2 -1 0 1 2 3 4 5 6 7 8 9 10
Nome
Valor
Definição de nomes para valores Cores , Dias da semana , Meses, etc.
ExemploExemplo
enum semana teoricaIP, praticaIP;teoricaIP, praticaIP;teoricaIP = segunda;teoricaIP = segunda;praticaIP = teoricaIP +1 ;praticaIP = teoricaIP +1 ;
enum semana teoricaIP, praticaIP;teoricaIP, praticaIP;teoricaIP = segunda;teoricaIP = segunda;praticaIP = teoricaIP +1 ;praticaIP = teoricaIP +1 ;
![Page 23: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/23.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Definição de tipos - Definição de tipos - EnumeraçõesEnumerações
enum novo_tipo {nome_1=valor_1, nome_2, . . .,nome_n};novo_tipo nome_variavel = nome_x;
enum novo_tipo {nome_1=valor_1, nome_2, . . .,nome_n};novo_tipo nome_variavel = nome_x;
enum logica {falso, verdadeiro };enum logica condicao=verdadeiro;
NOTASNOTAS
•Quando omitimos o valor a enumeração toma o valor da anterior mais uma unidade.• Por defeito começam em zero
•Quando omitimos o valor a enumeração toma o valor da anterior mais uma unidade.• Por defeito começam em zero
enum Cores {verde= 0 , amarelo = 1, vermelho =2 };enum Cores semaforo = verde;
![Page 24: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/24.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Valores lógicos (bool)Valores lógicos (bool)
Dois valores definidos false (valor zero) true (um ou qualquer outro valor)
VE
RD
AD
EIR
O
VE
RD
AD
EIR
O
VE
RD
AD
EIR
O
FA
LSO
VE
RD
AD
EIR
O
VE
RD
AD
EIR
O
VE
RD
AD
EIR
O
VE
RD
AD
EIR
O
VE
RD
AD
EIR
O
VE
RD
AD
EIR
O
VE
RD
AD
EIR
O
VE
RD
AD
EIR
O
-3 -2 -1 0 1 2 3 4 5 6 7 8
Nome
Valor
ExemploExemplo
bool aprovado, trabEstudante;bool aprovado, trabEstudante;aprovador = true;aprovador = true;trabEstudante = false;trabEstudante = false;
bool aprovado, trabEstudante;bool aprovado, trabEstudante;aprovador = true;aprovador = true;trabEstudante = false;trabEstudante = false;
![Page 25: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/25.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Definição de tipos - TypedefDefinição de tipos - Typedef
Definição de nomes para tipos
typedef tipo_de_dado novo_nome_do_tipo ;
Exemplos typedef unsigned long int int32;
definição de um novo tipo chamado int32
int32 somatorio; definicao de uma variável do tipo int32
![Page 26: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/26.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Tipos de dados do c++ BuilderTipos de dados do c++ Builder
tipotamanho(bits) Mínimo Máximo
unsigned char 8 0 255
char 8 -128 127
short int 16 -32,768 32,767
unsigned int 32 0 4,294,967,295
int 32 -2,147483648 2,147,483,647
unsigned long 32 0 4,294,967,295
enum 32 -2,147483648 2,147,483,647
long 32 -2,147483648 2,147,483,647
float 32 1.18 10^-38 < |X| < 3.40 10^38
double 64 2.23 10^-308 < |X| < 1.79 10^308
long double 80 3.37 10^-4932 < |X| < 1.18 10^4932
![Page 27: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/27.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
ExercícosExercícos
Defina variáveis em C para manipular A média das notas de um ano lectivo O salário de um trabalhador O número de alunos de um país O saldo de uma conta bancária Número de dias entre duas datas O sexo de um aluno Factor rhesus do sangue (+ e -) A situação de uma aluno relativo à
aprovação A situação de uma aluno relativo á
matrícula.
![Page 28: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/28.jpg)
© M@nso 2003
Introdução à programação Computadores e programação I
Entrada e saída de Entrada e saída de dadosdados
![Page 29: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/29.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Entrada e saida de dadosEntrada e saida de dados
scanf Entrada de dados pelo teclado
printf Saída de dado para a consola
scanf(“string de formato”, &&variavel , &&variavel ,…); scanf(“%f", &&altura); scanf(“%d", &&idade); scanf(“%f %d", &&altura, &&idade);
printf(“string de formato”, variavel , variavel ,…); printf(“ a altura é %f :", altura); printf(“ a idade é %d :", idade); printf(“\n altura: %f idade :%d \n", altura, idade);
![Page 30: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/30.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Formato de dados (I/O)Formato de dados (I/O) c c
caractercaracter s s
cadeia de caracterescadeia de caracteres d d
inteirointeiro f f
real no formato numéricoreal no formato numérico e e
real no formato cientificoreal no formato cientifico
u u sem sinal sem sinal
l l grandegrande
h h pequenopequeno
o o octaloctal
x x HexadecimalHexadecimal
%c Caracter char%s cadeias de caracteres char[]
%d numero decimal int%hd numero decimal pequeno (short) short int%ld numero decimal grande (long) long int%u numero decimal sem sinal unsigned int%hd numero decimal sem sinal pequeno unsigned short int%ld numero decimal grande sem sinal unsigned long int%o numero decimal em octal int%x numero decimal em hexadecimal int
%e numero real no formato cientifico ( 1.2e45) float%le numero real no formato cientifico grande (long) double%f numero real no formato numérico float%lf numero real double
![Page 31: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/31.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Programa gentilPrograma gentil
ExemploExemplo
#include <stdio.h>#include <stdio.h>int main(int argc, char* argv[])int main(int argc, char* argv[]){{ int idade;int idade; printf(“qual a sua idade:”);printf(“qual a sua idade:”); scanf(“ scanf(“ %d%d ” , ” , &idade&idade);); printf(“parabens, voce tem printf(“parabens, voce tem %d%d anos“, anos“, idadeidade););}}
#include <stdio.h>#include <stdio.h>int main(int argc, char* argv[])int main(int argc, char* argv[]){{ int idade;int idade; printf(“qual a sua idade:”);printf(“qual a sua idade:”); scanf(“ scanf(“ %d%d ” , ” , &idade&idade);); printf(“parabens, voce tem printf(“parabens, voce tem %d%d anos“, anos“, idadeidade););}}
![Page 32: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/32.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Ficheiros geradosFicheiros gerados
![Page 33: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/33.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Algoritmos computacionaisAlgoritmos computacionais
Acções de um algoritmo computacional Manipular dados
Receber dados Guardar dados Imprimir dados
Executar instruções Fazer operações aritméticas Fazer operações lógicas Escolha entre várias instruções. Repetir um conjunto de instruções
![Page 34: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/34.jpg)
© M@nso 2003
Introdução à programação Computadores e programação I
OperadoresOperadores
![Page 35: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/35.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
25 205 12
1
InteirosInteiros
Operadores unários - (sinal)
Operadores binários + (Soma) - (Subtracção) / (Divisão inteira) % (Módulo)
NOTANOTAQualquer operação entre inteiros devolve um inteiro
Qualquer operação entre inteiros devolve um inteiro
ExemploExemplo
25 - 2 = 23 25 - 2 = 23 --3 - 2 = -53 - 2 = -525 / 2 = 12 25 + 2 = 2725 / 2 = 12 25 + 2 = 2725 % 2 = 1 25 * 2 = 5025 % 2 = 1 25 * 2 = 50
25 - 2 = 23 25 - 2 = 23 --3 - 2 = -53 - 2 = -525 / 2 = 12 25 + 2 = 2725 / 2 = 12 25 + 2 = 2725 % 2 = 1 25 * 2 = 5025 % 2 = 1 25 * 2 = 50
![Page 36: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/36.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Operadores unários – Pós fixoOperadores unários – Pós fixo
Operadores unários ++ (incremento) -- (decremento)
NotaNota
X++X++X = X+1X = X+1X++X++X = X+1X = X+1
NotaNota
X--X--X = X-1X = X-1X--X--X = X-1X = X-1
NotaNota
y = x++y = x++
y = xy = xx = x+1x = x+1
y = x++y = x++
y = xy = xx = x+1x = x+1
NotaNota
y = x--y = x--
y = xy = xx = x-1x = x-1
y = x--y = x--
y = xy = xx = x-1x = x-1
xx
3333yy
expressãoexpressão
y = x++;y = x++; y = x++;y = x++;
xx
4444yy
3333
![Page 37: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/37.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Operadores unários – Pré fixoOperadores unários – Pré fixo
Operadores unários ++ (incremento) -- (decremento)
NotaNota
++X++XX = X+1X = X+1++X++XX = X+1X = X+1
NotaNota
--X--XX = X-1X = X-1--X--XX = X-1X = X-1
NotaNota
y = ++xy = ++x
x = x+1x = x+1y = xy = x
y = ++xy = ++x
x = x+1x = x+1y = xy = x
NotaNota
y = --xy = --x
x = x-1x = x-1y = xy = x
y = --xy = --x
x = x-1x = x-1y = xy = x
xx
3333yy
expressãoexpressão
y = --x;y = --x; y = --x;y = --x;
xx
2222yy
2222
![Page 38: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/38.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Operadores bit a bitOperadores bit a bit
Manipulam directamente a representação binária dos números
e (and) &
ou (or) |
ou exclusivo (Xor) ^
Deslocamento à esquerda <<
Deslocamento à direita >>
OU 0 1
0 0 1
1 1 1
E 0 1
0 0 0
1 0 1
Multiplicação
Lógica
Multiplicação
Lógica
SomaLógica
SomaLógica
xor
0 1
0 0 1
1 1 0diferença
Lógica
diferençaLógica
0 0 0 0 0 1 1 0
![Page 39: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/39.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Operadores bit a bit - OROperadores bit a bit - OR
xx
91919191yy
121288121288
expressãoexpressão
z = x | y ;z = x | y ; z = x | y ;z = x | y ;
xx
91919191yy
121288121288
zz
zz
212199212199
OU 0 1
0 0 1
1 1 1
SomaLógica
SomaLógica
0 1 0 1 1 0 1 1 91
1 0 0 0 0 0 0 0 128|
1 1 0 1 1 0 1 1 219
![Page 40: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/40.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Operadores bit a bit - ANDOperadores bit a bit - AND
xx
90909090yy
20202020
expressãoexpressão
z = x & y ;z = x & y ; z = x & y ;z = x & y ;
xx
90909090yy
20202020
zz
zz
16161616
128 64 32 16 8 4 2 1
0 1 0 1 1 0 1 0 90
0 0 0 1 0 1 0 0 20&
0 0 0 1 0 0 0 0 16
E 0 1
0 0 0
1 0 1
Multiplicação
Lógica
Multiplicação
Lógica
![Page 41: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/41.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Operadores bit a bit - XOROperadores bit a bit - XOR
xx
90909090yy
20202020
expressãoexpressão
z = x ^ y ;z = x ^ y ; z = x ^ y ;z = x ^ y ;
xx
90909090yy
20202020
zz
zz
78787878
0 1 0 1 1 0 1 0 90
0 0 0 1 0 1 0 0 20^
0 1 0 0 1 1 1 0 78
xor
0 1
0 0 1
1 1 0diferença
Lógica
diferençaLógica
![Page 42: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/42.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Operadores bit a bit - DeslocamentoOperadores bit a bit - Deslocamento
xx
20202020yy
expressãoexpressão
y = x << y = x << 2;2; y = x << y = x << 2;2;
xx
20202020yy
80808080
0 0 0 1 0 1 0 0 20<< 2
0 1 0 1 0 0 0 0 80
•Algoritmo•deslocam-se os bites para a esquerda•os últimos bites perdem-se•introduzem-se zeros no inicio
![Page 43: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/43.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Operadores bit a bit - DeslocamentoOperadores bit a bit - Deslocamento
xx
20202020yy
expressãoexpressão
y = x >> y = x >> 2;2; y = x >> y = x >> 2;2;
xx
20202020yy
5555•Algoritmo
•deslocam-se os bites para a direita•os primeiros bites perdem-se•introduzem-se zeros no fim
0 0 0 1 0 1 0 0 20>>2
0 0 0 0 0 1 0 1 5
![Page 44: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/44.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Operadores sobre reaisOperadores sobre reais
Aritméticos multiplicação divisão soma subtracção
C Real
-3,14156100 0001 100 0001
Nome da variável
0100 0001 0100 0001
mantissa expoente
![Page 45: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/45.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Operadores compostosOperadores compostos
+= , -=,%=, *=, /=, >>=, <<=, &=, |=, ^= += , -=,%=, *=, /=, >>=, <<=, &=, |=, ^=
variável Operador= expressão Variavel = variavel operador expressão
exemplosexemplos
X+= 3;X+= 3;X = X+3;X = X+3;X+= 3;X+= 3;X = X+3;X = X+3;
exemplosexemplos
x/=y;x/=y;x = x /y;x = x /y;x/=y;x/=y;x = x /y;x = x /y;
exemplosexemplos
X*= 3;X*= 3;X = X*3;X = X*3;X*= 3;X*= 3;X = X*3;X = X*3;
exemplosexemplos
X|= y;X|= y;X = X | y;X = X | y;X|= y;X|= y;X = X | y;X = X | y;
![Page 46: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/46.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Operadores sobre lógicosOperadores sobre lógicos
RELACIONAIS Maior
> Menor
< Igual
== Maior ou igual
>= Menor ou igual
<= Diferente
!=
LÒGICOS Conjunção
&& Disjunção
|| Negação
!
![Page 47: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/47.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
AssociatividadeAssociatividade
Associatividade esquerda=> direita x + y + z
3 + z 7
z / x * y 2 * z
2
xx
2222yy
1111zz
4444rr
1111
Associatividade direita => esquerda r =x + y + z
7 r = 7 teste = !matriculado
teste = true x = -z
x=-4
matriculadomatriculado
falsefalsefalsefalsetesteteste
falsefalsefalsefalse
![Page 48: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/48.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Prioridade dos operadoresPrioridade dos operadores
Operadores Associatividade () esquerda para a direita ! - ++ -- direita para a esquerda * / % esquerda para a direita + - esquerda para a direita << >> esquerda para a direita < <= > >= esquerda para a direita == != esquerda para a direita & esquerda para a direita ^ esquerda para a direita | esquerda para a direita && esquerda para a direita || esquerda para a direita ?: direita para a esquerda = += -= *= /= %= &= ^= |= <<= >>= direita para a esquerda
![Page 49: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/49.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Algoritmos computacionaisAlgoritmos computacionais
Acções de um algoritmo computacional Manipular dados
Receber dados Guardar dados Imprimir dados
Executar instruções Fazer operações aritméticas Fazer operações lógicas Escolha entre várias instruções. Repetir um conjunto de instruções
![Page 50: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/50.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
ExercíciosExercícios
Construa um programa que calcule a área de um rectangulo
Ler lado1Ler lado1
Area := lado1*lado2Area := lado1*lado2
InicioInicio
Programa Área do rectânguloPrograma Área do rectângulo
#include <stdio.h>#include <stdio.h>int main(int argc, char* argv[])int main(int argc, char* argv[]){{ double Lado1, lado2, area;double Lado1, lado2, area; scanf(“%lf”, &lado1);scanf(“%lf”, &lado1); scanf(“%lf”, &lado2);scanf(“%lf”, &lado2); area = lado1 * lado2;area = lado1 * lado2; printf(“ area = %lf ”, area);printf(“ area = %lf ”, area);
}}
#include <stdio.h>#include <stdio.h>int main(int argc, char* argv[])int main(int argc, char* argv[]){{ double Lado1, lado2, area;double Lado1, lado2, area; scanf(“%lf”, &lado1);scanf(“%lf”, &lado1); scanf(“%lf”, &lado2);scanf(“%lf”, &lado2); area = lado1 * lado2;area = lado1 * lado2; printf(“ area = %lf ”, area);printf(“ area = %lf ”, area);
}}
fimfim
Ler lado2Ler lado2
Escrever Area
![Page 51: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/51.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
ExercíciosExercícios
Construa um programa que leia a nota teórica e a nota prática e imprima a nota final (não arredondada) da disciplina de IP
Nota de IPNota de IP#include <stdio.h>#include <stdio.h>int main(int argc, char* argv[])int main(int argc, char* argv[]){{ float nTeorica, nPratica, nFinal;float nTeorica, nPratica, nFinal; printf(“ introduza a nota teórica :“);printf(“ introduza a nota teórica :“); scanf(“%f”, &nTeorica);scanf(“%f”, &nTeorica); printf(“printf(“ introduza a nota prática:“);introduza a nota prática:“); scanf(“%f”, &nPratica);scanf(“%f”, &nPratica); nFinal = nTeorica * 0.6 + nPratica * 0.4;nFinal = nTeorica * 0.6 + nPratica * 0.4; printf(“A nota final e: %f “,nFinal);printf(“A nota final e: %f “,nFinal);}}
#include <stdio.h>#include <stdio.h>int main(int argc, char* argv[])int main(int argc, char* argv[]){{ float nTeorica, nPratica, nFinal;float nTeorica, nPratica, nFinal; printf(“ introduza a nota teórica :“);printf(“ introduza a nota teórica :“); scanf(“%f”, &nTeorica);scanf(“%f”, &nTeorica); printf(“printf(“ introduza a nota prática:“);introduza a nota prática:“); scanf(“%f”, &nPratica);scanf(“%f”, &nPratica); nFinal = nTeorica * 0.6 + nPratica * 0.4;nFinal = nTeorica * 0.6 + nPratica * 0.4; printf(“A nota final e: %f “,nFinal);printf(“A nota final e: %f “,nFinal);}}
Ler nTeoricaLer nTeorica
nFinal = nTeorica*0.6 +nPratica * 0.4
nFinal = nTeorica*0.6 +nPratica * 0.4
InicioInicio
fimfim
Ler nPraticaLer nPratica
Escrever nFinal
![Page 52: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/52.jpg)
© M@nso 2003
Introdução à programação Computadores e programação I
Selecção de intruçõesSelecção de intruções
![Page 53: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/53.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Selecção SimplesSelecção Simples
. . .
Se <condição> então
Instruções
fim_se
. . .
Se <condição> então
Instruções
fim_se
CondiçãoCondição
Bloco deInstruções
Bloco deInstruções
FluxogramaFluxograma
Se x > 0 então
escrever “numero:”
ler numero
fim_se
Se x > 0 então
escrever “numero:”
ler numero
fim_se
ExemploExemplo
V
C++C++
If (condição)If (condição){{ intrução;intrução; intrução;intrução; intrução;intrução; . . .. . .}}
If (condição)If (condição){{ intrução;intrução; intrução;intrução; intrução;intrução; . . .. . .}}
Um “Bloco de instruções” é limitado por chavetas { }
Um “Bloco de instruções” é limitado por chavetas { }
Linguagem estruturadaLinguagem estruturada
![Page 54: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/54.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Selecção Simples (exemplo)Selecção Simples (exemplo)
A empresa X faz um desconto de 15% em todas as facturas cujo total ultrapasse 1000 euros. Construa um programa que receba o total da factura e imprima o valor a pagar
A empresa X faz um desconto de 15% em todas as facturas cujo total ultrapasse 1000 euros. Construa um programa que receba o total da factura e imprima o valor a pagar
ExemploExemploInicioInicio
totalFactura>10000
totalFactura>10000
Ler totalFacturaLer totalFactura
totalFactura =totalFactura *0.85
totalFactura =totalFactura *0.85
FimFim
v
totalFactura
![Page 55: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/55.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Selecção Simples (exemplo)Selecção Simples (exemplo)
Calculo do total da facturaCalculo do total da factura
#include <stdio.h>#include <stdio.h>int main(int argc, char* int main(int argc, char* argv[])argv[]){{ float totalFactura; scanf(“%f”, &totalFactura); if( totalFactura > 1000.0) { totalFactura*= 0.85; } printf(“ %f “, totalFactura);}}
#include <stdio.h>#include <stdio.h>int main(int argc, char* int main(int argc, char* argv[])argv[]){{ float totalFactura; scanf(“%f”, &totalFactura); if( totalFactura > 1000.0) { totalFactura*= 0.85; } printf(“ %f “, totalFactura);}}
NOTANOTASe o bloco tiver apenas uma instrução podem omitir-se as chavetas
Se o bloco tiver apenas uma instrução podem omitir-se as chavetas
![Page 56: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/56.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Visibilidade das variáveisVisibilidade das variáveis
int main(int argc, char* argv[]){ float totalFactura; sacanf(“ %f “, &totalFactura); if( totalFactura > 1000){ double desconto = totalFactura* 0.85; totalFactura -= desconto; } printf(“%f”, totalFactura); return 0;}
int main(int argc, char* argv[]){ float totalFactura; sacanf(“ %f “, &totalFactura); if( totalFactura > 1000){ double desconto = totalFactura* 0.85; totalFactura -= desconto; } printf(“%f”, totalFactura); return 0;}
Visibilidade das variáveis:•Desde que são declaradas•Até final do bloco
![Page 57: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/57.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Selecção em AlternativaSelecção em Alternativa
. . .
Se <condição> entao
Instruções
Senao
Instruções
Fim_se
. . .
Se <condição> entao
Instruções
Senao
Instruções
Fim_se
Linguagem estruturadaLinguagem estruturada
CondiçãoCondição
InstruçõesInstruções
FluxogramaFluxograma
Se numero>0 então
escreve “positivo”
Senão
escreve “negativo”
Fim_se
Se numero>0 então
escreve “positivo”
Senão
escreve “negativo”
Fim_se
ExemploExemplo
V
InstruçõesInstruções
F
C++C++
if (condição)if (condição){{ intrução1;intrução1; . . .. . .}}else else {{ intrução2;intrução2; . . .. . .}}
if (condição)if (condição){{ intrução1;intrução1; . . .. . .}}else else {{ intrução2;intrução2; . . .. . .}}
![Page 58: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/58.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Selecção em Alternativa (exemplo)Selecção em Alternativa (exemplo)
25 205 12
1
Construa um programa que imprima “Par” ou “Impar” consoante o número introduzido pelo utilizador o é ou não.
Construa um programa que imprima “Par” ou “Impar” consoante o número introduzido pelo utilizador o é ou não.
ExercícioExercício
128 64 32 16 8 4 2 1
0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 1 10 0 0 0 0 0 1 0 20 0 0 0 0 0 1 1 30 0 0 0 0 1 0 0 40 0 0 0 0 1 0 1 50 0 0 0 0 1 1 0 6
0 0 0 0 0 0 0 1&
0 0 0 0 0 0 0 X
![Page 59: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/59.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Selecção Simples (exemplo)Selecção Simples (exemplo)
Programa par ou imparPrograma par ou impar
main()main(){{ int numero; printf( “ numero :”); scanf(“%d”,&numero); if( numero % 2 == 0) printf(“ O numero é par”); else printf(“ o número é impar”); }}
main()main(){{ int numero; printf( “ numero :”); scanf(“%d”,&numero); if( numero % 2 == 0) printf(“ O numero é par”); else printf(“ o número é impar”); }}
25 205 12
1
n % 2 = 0n % 2 = 0
VF
Fim
Inicio
Ler nLer n
ImparPar
![Page 60: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/60.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Selecção encadeadaSelecção encadeada
Construa um programa que imprima o maior de três número introduzido pelo utilizador
Construa um programa que imprima o maior de três número introduzido pelo utilizador
ExercícioExercício
V1 > v2 eV1 > v3
V1 > v2 eV1 > v3
Maior=v1Maior=v1
V2>v3V2>v3
Maior=v2
Maior=v2 Maior=v3Maior=v3
ss
ss
nn
nn
![Page 61: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/61.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Selecção encadeada (exemplo)Selecção encadeada (exemplo)
Programa maior de trêsPrograma maior de três
int main(int argc, char* argv[])int main(int argc, char* argv[]){{ int v1, v2; v3;int v1, v2; v3; int maior;int maior; scanf(“ %d %d %d “, &v1, &v2, &v3);scanf(“ %d %d %d “, &v1, &v2, &v3); ifif( v1 > v2 && v1 > v3)( v1 > v2 && v1 > v3) maior= v1;maior= v1; elseelse {{ ifif( v2 > v3)( v2 > v3) maior= v2;maior= v2; elseelse maior=v3;maior=v3; }} printf(“ O maior é %d :”, maior);printf(“ O maior é %d :”, maior); return 0;return 0;}}
int main(int argc, char* argv[])int main(int argc, char* argv[]){{ int v1, v2; v3;int v1, v2; v3; int maior;int maior; scanf(“ %d %d %d “, &v1, &v2, &v3);scanf(“ %d %d %d “, &v1, &v2, &v3); ifif( v1 > v2 && v1 > v3)( v1 > v2 && v1 > v3) maior= v1;maior= v1; elseelse {{ ifif( v2 > v3)( v2 > v3) maior= v2;maior= v2; elseelse maior=v3;maior=v3; }} printf(“ O maior é %d :”, maior);printf(“ O maior é %d :”, maior); return 0;return 0;}}
![Page 62: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/62.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
ExercícioExercício
Contrua um programa que solicite ao utilizador a letra correspondente ao estado civil (S C D V ) e imprima por extenso o mesmo ou erro no caso de não ser um caractér válido
Contrua um programa que solicite ao utilizador a letra correspondente ao estado civil (S C D V ) e imprima por extenso o mesmo ou erro no caso de não ser um caractér válido
ecivilecivil
InicioInicio
ecivil=secivil=s
nãonão
Estado = SolteiroEstado = Solteiro
simsim
ecivil=cecivil=c
Estado = casadoEstado = casado
ecivil=decivil=d
Estado =divorciadoEstado =divorciado
simsimnãonão
ecivil=vecivil=v
Estado = viuvoEstado = viuvo
simsim
Estado = ERROEstado = ERRO
naonao
nãonão simsim
estado FimFim
![Page 63: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/63.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
ExercícioExercício
Estado civilEstado civilmain()main(){{ char ECivil; scanf(“%c”,&ECivil); if( ECivil ==‘S’) printf( “ Solteiro”); else if (ECivil ==‘C’ )
printf(“ Casado”); else if ( ECivil == ‘D)
printf(“Divorciado”); else if(ECivil == ‘V’)
printf(“Viuvo”); else
printf(“ERRO”); }}
main()main(){{ char ECivil; scanf(“%c”,&ECivil); if( ECivil ==‘S’) printf( “ Solteiro”); else if (ECivil ==‘C’ )
printf(“ Casado”); else if ( ECivil == ‘D)
printf(“Divorciado”); else if(ECivil == ‘V’)
printf(“Viuvo”); else
printf(“ERRO”); }}
ecivilecivil
InicioInicio
ecivil=secivil=s
nãonão
Estado = SolteiroEstado = Solteiro
simsim
ecivil=cecivil=c
Estado = casadoEstado = casado
ecivil=decivil=d
Estado =divorciadoEstado =divorciado
simsimnãonão
ecivil=vecivil=v
Estado = viuvoEstado = viuvo
simsim
Estado = ERROEstado = ERRO
naonao
nãonão simsim
estado FimFim
![Page 64: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/64.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Selecção MúltiplaSelecção Múltipla
switchswitch
switch ( expressão)switch ( expressão){{ case constante1 :case constante1 : intruções;intruções; break;break; case constante2 :case constante2 : intruções;intruções; break;break; . . . . . . case constanten :case constanten : intruções;intruções; break;break; default:default: intruções;intruções;
}}
switch ( expressão)switch ( expressão){{ case constante1 :case constante1 : intruções;intruções; break;break; case constante2 :case constante2 : intruções;intruções; break;break; . . . . . . case constanten :case constanten : intruções;intruções; break;break; default:default: intruções;intruções;
}}
ecivilecivilss cc …… defeitodefeito
estado
ecivilecivil
InicioInicio
Estado = solteiroEstado = solteiro
Estado = casadoEstado = casado
Estado = ERROEstado = ERRO
FimFim
Estado = …Estado = …
![Page 65: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/65.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
ExercícioExercícioEstado civilEstado civil
#include <iostream.h>#include <iostream.h>main(){main(){ char ECivil;char ECivil; scanf(“%c”,&ECivil); switch ( ECivil)switch ( ECivil) {{ case ‘S’ :case ‘S’ : printf( “solteiro”);printf( “solteiro”); break;break;
case ‘C’ :case ‘C’ : printf(printf(“casado”);“casado”);
break;break;case ‘D’ :case ‘D’ :
printf(printf(“Divorciado”);“Divorciado”); break;break;
case ‘V’ :case ‘V’ : printf(printf(“Viuvo”);“Viuvo”); break;break;
default :default : printf(printf(“ERRO”);“ERRO”); }}}}
#include <iostream.h>#include <iostream.h>main(){main(){ char ECivil;char ECivil; scanf(“%c”,&ECivil); switch ( ECivil)switch ( ECivil) {{ case ‘S’ :case ‘S’ : printf( “solteiro”);printf( “solteiro”); break;break;
case ‘C’ :case ‘C’ : printf(printf(“casado”);“casado”);
break;break;case ‘D’ :case ‘D’ :
printf(printf(“Divorciado”);“Divorciado”); break;break;
case ‘V’ :case ‘V’ : printf(printf(“Viuvo”);“Viuvo”); break;break;
default :default : printf(printf(“ERRO”);“ERRO”); }}}}
![Page 66: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/66.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
ExercícioExercício
Estado civilEstado civilswitch ( ECivil)switch ( ECivil) {{
. . . . . . case ‘d’ :case ‘d’ :
case ‘D’ :case ‘D’ : printf(printf( “Divorciado”); “Divorciado”); break;break; . . .. . . }}
switch ( ECivil)switch ( ECivil) {{
. . . . . . case ‘d’ :case ‘d’ :
case ‘D’ :case ‘D’ : printf(printf( “Divorciado”); “Divorciado”); break;break; . . .. . . }}
NOTANOTAA escolha termina:
•quando chegar ao fim
•quando encontrar a instrução break
A escolha termina:
•quando chegar ao fim
•quando encontrar a instrução break
![Page 67: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/67.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
ExercíciosExercícios
Construa um programa que indique se dois números introduzidos pelo utilizador são múltiplos um do outro.
Construa um programa que calcule as raízes de uma equação de 2º grau.
Altere o programa anterior para calcular as raízes reais e imaginárias.
![Page 68: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/68.jpg)
© M@nso 2003
Introdução à programação Computadores e programação I
ErrosErros
![Page 69: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/69.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Erros programasErros programas Erros de especificação
Não compreendemos o problema Erros Lógicos
O algoritmo está errado Erros de sintaxe
O algoritmo está mal programado Erros de ligação
Bibliotecas referenciadas que não existem Erros de execução
Dados mal introduzidos
Os erros são a base da experiência.
![Page 70: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/70.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Erros de especificaçãoErros de especificação
Construir um programa que as calcule as interacções do spin de um electrão num campo gravitacional desconhecido dado o número de mesões e fermiões pertencentes ao meio.
![Page 71: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/71.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Erros LógicosErros Lógicos
Solteiro casado ou erro
ecivilecivil
InicioInicio
ecivil=secivil=s
nãonão
Estado = SolteiroEstado = Solteiro
simsim
nãonão
estado
FimFim
ecivil=cecivil=c
Estado = casadoEstado = casado
simsim
Estado = casadoEstado = casado
![Page 72: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/72.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Erros de sintaxe mais comunsErros de sintaxe mais comuns
Escrita ambígua
if(m == 0) if(n == 0) printf("m e n são zero.“); else printf("m não é zero.“);
if(m == 0) if(n == 0) printf("m e n são zero.“); else printf("m não é zero.“);
![Page 73: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/73.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Erros de sintaxe mais comunsErros de sintaxe mais comuns
Esquecer as chavetas
int main(int argc, char* argv[]){ float totalFactura; sacanf(“ %f “, &totalFactura); if( totalFactura > 1000) double desconto = totalFactura* 0.85; totalFactura -= desconto; printf(“%f”, totalFactura); return 0;}
int main(int argc, char* argv[]){ float totalFactura; sacanf(“ %f “, &totalFactura); if( totalFactura > 1000) double desconto = totalFactura* 0.85; totalFactura -= desconto; printf(“%f”, totalFactura); return 0;}
![Page 74: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/74.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Erros de sintaxe mais comunsErros de sintaxe mais comuns
Colocar um ; a seguir ao if ou else
int main(int argc, char* argv[]){ float totalFactura; sacanf(“ %f “, &totalFactura);
if( totalFactura > 1000) ; { double desconto = totalFactura* 0.85; totalFactura -= desconto; } printf(“%f”, totalFactura); return 0;}
int main(int argc, char* argv[]){ float totalFactura; sacanf(“ %f “, &totalFactura);
if( totalFactura > 1000) ; { double desconto = totalFactura* 0.85; totalFactura -= desconto; } printf(“%f”, totalFactura); return 0;}
![Page 75: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/75.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Erros de sintaxe mais comunsErros de sintaxe mais comuns
Esquecer o break; no ciclo switch
Estado civilEstado civil
switch ( ECivil)switch ( ECivil) {{ case ‘S’ :case ‘S’ : printf( “solteiro”);printf( “solteiro”);
case ‘C’ :case ‘C’ : printf(printf(“casado”);“casado”);case ‘D’ :case ‘D’ :
printf(printf(“Divorciado”);“Divorciado”);case ‘V’ :case ‘V’ :
printf(printf(“Viuvo”);“Viuvo”);default :default :
printf(printf(“ERRO”);“ERRO”); }}
switch ( ECivil)switch ( ECivil) {{ case ‘S’ :case ‘S’ : printf( “solteiro”);printf( “solteiro”);
case ‘C’ :case ‘C’ : printf(printf(“casado”);“casado”);case ‘D’ :case ‘D’ :
printf(printf(“Divorciado”);“Divorciado”);case ‘V’ :case ‘V’ :
printf(printf(“Viuvo”);“Viuvo”);default :default :
printf(printf(“ERRO”);“ERRO”); }}
![Page 76: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/76.jpg)
© M@nso 2003
Introdução à programação Computadores e programação I
ConclusãoConclusão
![Page 77: © M@nso 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C](https://reader035.vdocuments.com.br/reader035/viewer/2022062512/552fc13b497959413d8d914f/html5/thumbnails/77.jpg)
Introdução à programação Computadores e programação I
© M@nso 2004
Construção de programasConstrução de programas Especificação do problema
Compreender o problema Desenvolvimento do algoritmo
Especificar as entradas, saídas e uma forma de transformar as entradas em saídas
Tradução do algoritmo para uma linguagem de programação programar
Tradução do programa para linguagem máquina Compilar e linkar
Executar o programa testar