Programação1
-
Upload
tiago-caetano -
Category
Documents
-
view
4.261 -
download
2
description
Transcript of Programação1
Ângela Oliveira 2008/2009 © 1
Programação I
O que é uma linguagem de Programação ?
“Uma linguagem de programação é um método padronizado para expressar instruções para um
computador. É um conjunto de regras sintácticas e semânticas usadas para definir um programa
de computador.
Uma linguagem permite que um programador especifique precisamente quais dados um sobre
os quais o computador vai actuar, como esses dados serão armazenados ou transmitidos e
quais acções que devem ser tomadas de acordo com várias circunstâncias.” (definição Wikipédia).
“Uma linguagem de programação é uma notação para escrever programas.”
Uma das principais metas das linguagens de programação é permitir que programadores
tenham uma maior produtividade, permitindo expressar suas intenções mais facilmente do que
quando comparado com a linguagem que um computador que se designa por “código máquina”
ou “linguagem de baixo nível”.
Programação I
Linguagens de programação são ferramentas importantes, para que os programadores possa
escrever programas mais organizados e com maior rapidez.
Linguagens de programação tornam os programas menos dependentes do computador ou
ambientes computacionais específicos (portabilidade). Isto acontece porque os programas
escritos em linguagens de programação são traduzidos para o código máquina e processados
pelo computador.
As Linguagens de Programação , são precisas , não ambíguas e limitadas às tarefas que o
computador pode desempenhar
2Ângela Oliveira 2008/2009 ©
Programação I
Um computador divide-se em duas componentes:
Parte fisica (hardware) que é composto por:
Unidade Central de Processamento (CPU) – responsável pela correcta execução das tarefas;
Memória - capacidade de armazenamento de informação por um determinado periodo de tempo:
♦ Memória Primária – RAM (Random Access Memory) – memória mais rápida, no entanto
só é guardada informação temporariamente;
♦ Memória Secundária – mais lenta, no entanto a informação pode ser guardada de forma
permanente;
Periféricos - são todos os sistemas auxiliares que permitem a comunição entre o processador e o
exterior. Ex.: rato, teclado, impressoras, discos externos, etc.
3Ângela Oliveira 2008/2009 ©
Programação I
Parte lógica (software) que é composto por :
Sistema Operativo;
Ficheiros- é um conjunto de dados agrupados sob determinado nome;
Programa - é m ficheiro que descreve uma tarefa específica atrvés de uma linguagem
conhecida pelo sistema.
4Ângela Oliveira 2008/2009 ©
5
Programação I
Há diversos níveis de linguagens de programação, de acordo com as afinidades que
apresentam com o modo como os humanos comunicam.
As linguagens de programação são divididas em:
1-linguagens máquina,
2-linguagens “assembly”
3-linguagens de alto nível
As primeiras são utilizadas para comandar directamente as acções do computador. As instruções
são constituídas por sequências de 0s e 1s.
Estas linguagens são difíceis de usar e compreender, variando consoante o tipo de computador.
Ângela Oliveira 2008/2009 ©
6
Programação I
Exemplo 1:
Como se representa 11 em binário?
Como se representa “a” em binário, é representado por 97 em decimal.
O segundo tipo de linguagens é parecido com as linguagens máquina, a diferença reside no uso de nomes
simbólicos em vez de sequências de 0s e 1s. Também variam em função do tipo de computador utilizado.
Exemplo 2: Para repetir uma instrução dez vezes usa-se - rpt #10
Para mover o conteúdo de ar1 para ar2 usa-se – mvmm ar1, ar2
Linguagens de alto nível - são mais próximas das linguagens humanas e, por isso, muito mais fáceis de utilizar.
Há muitas linguagens deste tipo, por exemplo C, R, PASCAL, FORTRAN, BASIC, LISP, PROLOG, HASKEL,
JAVA, ...
Ângela Oliveira 2008/2009 ©
7
Programação I
Exemplo 3:
C, PASCAL, COBOL, PROLOG, HASKELL, JAVA, PYTHON, RUBY ...
Um computador apenas “entende” linguagem máquina, por isso surge primeiro a linguagem
“assembly”, e por fim as linguagens de alto nível que são mais fáceis de utilizar.
No entanto é necessário utilizar mecanismos que efectuem a tradução da linguagem de alto
nível para linguagem máquina.
Ângela Oliveira 2008/2009 ©
8
Programação I
Exemplo 4:
Calcular a soma de dois valores.
Em COBOL:
compute c=a+b
Em PASCAL:
function SomaDeDoisValores (A, B: Integer): Integer;
begin
Resutado:=A+B;
end;
Ângela Oliveira 2008/2009 ©
9
Programação I
Em PROLOG:
SomaDeDoisValores (A, B, Result):- Result is A+B
Em HASKELL:
soma:: Integer -> Integer -> Integer
soma a b =a+b
Em PYTHON:
def SomaDeDoisValores (a, b):
return a+b
Em RUBY:
def Soma_de_dois_valores (a, b)
a+b
end
Ângela Oliveira 2008/2009 ©
10
Programação IEm C\C++\JAVA:
public int SomaDeDoisValores (int a , int b){
return a+b;
}
Existem duas formas de uma linguagem de programação ser convertida em linguagem
máquina: por compilação ou por interpretação .
Um compilador é um programa que a partir de um código escrito numa linguagem designado
“código fonte”, cria um programa equivalente mas escrito em linguagem de baixo nível,
designado “código objecto”.
Um interpretador é um programa de computador que ao ler um código fonte o converte em
código executável.
As linguagens que são interpretadas são mais dinâmicas uma vez que não precisam de
escrever o código fonte mas sim vai interpretando o código fonte geralmente linha a linha.
Ângela Oliveira 2008/2009 ©
11
Programação I
JAVA
Ângela Oliveira 2008/2009 ©
12
Programação I
Linguagem de Programação JAVA
O Java surgiu no inicio da década de noventa e foi desenvolvido pela Sun Microsystems.
Inicialmente esta linguagem estava orientada para o desenvolvimento de aplicações para
a WEB, designadas por applets.
Com a introdução do JAVA 2, esta linguagem tornou-se uma plataforma de
desenvolvimento com um interface gráfico bastante sofisticado.
Ângela Oliveira 2008/2009 ©
13
Programação I
Como funciona:
Ângela Oliveira 2008/2009 ©
Ângela Oliveira 2007/2008 14
Programação I
Estrutura de um programa
- Um programa em Java é um conjunto de uma ou mais classes;
- Uma classe é um conjunto de um ou mais métodos;
- Um método contém instruções.
Exemplo:
import java.io.*; //package// Imprime uma mensagem
public class mensagem {public static void main (String[] args) {
System.out.println (“Olá, bom dia !”);}
}
Programação I
O Método main
Quando se executa um programa em Java, as instruções incluídas no método
main começam a ser executadas automaticamente e a restante execução decorre
a partir deste ponto.
Todas as aplicações têm que ter um método main.
Tem que ser declarado da seguinte forma:
public static void main (String[] args) {
….
}
A classe que tem o mesmo nome que o ficheiro que se compila e executa.
15Ângela Oliveira 2008/2009 ©
16
Programação I
Os programas incluem normalmente três tipos de componentes:
Instruções : implicam a execução de algo;
Declarações : fornecem informação necessária para as instruções
poderem ser executadas;
Comentários : para tornar os programas mais legíveis, mas ignorados
pelo computador.
Ângela Oliveira 2008/2009 ©
17
Programação I
Importante:
As linguagens de programação têm regras
(sintaxe) que indicam como criar instruções,
declarações e comentários de forma válida.
Qualquer programador deve poder ler e
entender o código de forma fácil.
Ângela Oliveira 2008/2009 ©
Ângela Oliveira 2007/2008 18
Programação I
A sintaxe do Java inclui:
-palavras reservadas;
- símbolos;
- identificadores;
- valores.
Palavras reservadas
Palavras reservadas são palavras especificas da linguagem que só
podem ser usadas nas situações para as quais foram definidas.
Exemplo1: class, int, void, public, etc.
Ângela Oliveira 2007/2008 19
Programação I
Símbolos
Têm uma função semelhante à das palavras reservadas.
Exemplo 2 : Operadores: + - * . = ; Pontuação: , { } ( ) ;
Identificadores
Palavras que se usam para nomear entidades que o programa usa e manipula.
Exemplo 3 : variáveis e constantes;
Podem ser constituídas por qualquer combinação de letras, dígitos, e os caracteres
_ e $.
Um identificador não pode começar com um dígito.
O Java é “case sensitive”, ou seja Total, total e TOTAL são identificadores
diferentes.
Ângela Oliveira 2007/2008 20
Programação I
Para os identificadores cada linguagem determina um conjunto de normas
(convenções). No caso do JAVA têm-se:
- Uma Classe - começa com maiúscula (ex. PrimeiraClasse)
- Um Método - começa com minúscula (ex. main)
- Uma Variável - começa com minúscula (ex. soma)
- Uma Constante - em maiúsculas (ex. MAX)
É necessário algum cuidado na escolha identificadores, uma vez que
devem fazer uma descrição clara do que identificam, de forma a que a
leitura do código se torne explicita.
Ângela Oliveira 2007/2008 21
Programação I
O exemplo seguinte ilustra algumas das situações a evitar (completamente):
Exemplo 4:
•••• Variáveis com nomes:
- como “a” ou “y”, pode ser pouco esclarecedor ;
- como “aminhavariaveldasoma” é demasiado longo e
pode tornar o código demasiado confuso;
•••• Classes com nomes como:
- como “J”, não têm grande significado, para além do nome
do ficheiro que ficará “J.java”;
- como “AminhaprimeiraClasseJava”;
Ângela Oliveira 2007/2008 22
Programação I
Valores
Trata-se de dados explícitos:
¬¬¬¬ Inteiros: 127, 1, 0;
¬¬¬¬ Reais: - 3.14159, 0.000345
¬¬¬¬ Caracteres: ‘a’, ‘A’;
¬¬¬¬ Strings: “Olá Mundo”:
23
Programação I
Exercicio: Na classe seguinte identificar:
palavras reservadas, símbolos identificadores e valores.
import java.io.*; //package
public class mensagem {public static void main (String[] args) {
System.out.println (“Olá, bom dia !”);}
}
Ângela Oliveira 2008/2009 ©
24
Programação I
O que significa a primeira instrução da classe anterior?
import java.io.*;
O java.io.* é um package. Um package é um “mecanismo” que
permite agrupar classes relacionadas num determinado directório.
Quando um código java começa a ficar muito extenso não é
aconselhável mantê-lo no mesmo directório.
A linguagem java permite a divisão desse código por classes e por
packages.
Ângela Oliveira 2008/2009 ©
Ângela Oliveira 2007/2008 25
Programação I
O código que se junta nas mesmas classes e/ou packages deve
dizer respeito ao mesmo assunto.
Existem na linguagem java os chamados packages standard que
são:
≡≡≡≡ java.io – contém classes para manipulação de dados de
entrada/saída;
≡≡≡≡ java.lang – contém classes representativas de tipos primitivos de
dados (booleanos, inteiros, string);
≡≡≡≡ java.awt – contém classes para a criação de objectos gráficos.
Ângela Oliveira 2007/2008 26
Programação I
Estrutura Básica de um ProgramaO desenvolvimento de uma aplicação JAVA tem que ser sempre feito usando classes.
As Classes em JAVA devem obedecer à seguinte sintaxe:
<modificador de acesso>class <nome da classe> {
<Declaração de Variáveis>
<Declaração de Métodos>
public static void main (String args[]){
//corpo do programa
}
}
Ângela Oliveira 2007/2008 27
Programação I
EXEMPLO
public class Exemplo1 {
String mensagem=“Já sei construir uma classe em JAVA!”;
public void Imprime_Msg (){
System.out.println (mensagem);
}
public static void main (String args[]){
Imprime_Msg();
}
}
Nome da ClasseVariável
Definição de um método
Corpo do Programa
Ângela Oliveira 2007/2008 28
Programação I
Outra forma de construir a classe anterior sem recorrer a métodos:
public class Exemplo1 {
public static void main(String[] args) {
String mensagem="ola";
System.out.println(mensagem);
}
}
Observações:
As classes, métodos ou blocos de código tem que esta r sempre delimitados por
abrir { e fechar }.
Um comando deve ser sempre finalizado com ;.
Ângela Oliveira 2007/2008 29
Programação I
Tipos Primitivos de Dados
A linguagem JAVA possui quatro tipos principais básicos de
dados:
� Inteiros;
� Ponto Flutuante;
� Caracteres;
� Lógicos
Estes dados básicos permitem a representação adequada dos
valores numéricos.
30
Programação I
Tipos de Dados Inteiros
Existem quatro formas de representar estes dados:
� byte – 8 bits (-128 a 127);
� short (inteiro curto) – 16 bits (-32 768 a 32 767);
� int (inteiro) – 32 bits (-2 147 483 648 a 2 147 483 647)
� long (inteiro longo) – 64 bits (-9 233 372 036 854 775 808 a
-9 233 372 036 854 775 807).
Por defeito (default) os valores são tratados como inteiros simples (int).
No JAVA, não existe um indicador de valores negativos, assim os
inteiros representam tanto valores positivos, como negativos.
Ângela Oliveira 2008/2009 ©
31
Programação I
Tipos de Dados de Ponto Flutuante
Existem duas formas de representar estes dados:
� float – valores reais com precisão simples;
� double – valores reais com dupla precisão.
Ex.3.14159, -0.02
Os tipos de dados de ponto flutuante servem para armazenar números que possuem uma parte decimal e deve ser utilizado o ponto como separador de casas decimais.
Para representar por exemplo o número 3.4*105 podem ser usados os caracteres “e” ou “E” e ficará 3.4e5 ou 3.4E5.
Ângela Oliveira 2007/2008
Ângela Oliveira 2007/2008 32
Programação I
Tipos de Dados Caracter
O único tipo desta categoria é o char e permite o armazenamento de
apenas um caracter. Para armazenar um conjunto de palavras tem que ser
usado o tipo String que não é um tipo primitivo de dados.
Cada caracter ocupa 16 bits(2 bytes).
Um valor que represente um caracter deve estar delimitado por ‘’.
Exemplo: char letra=‘a’;
Existem caracteres que são considerados especiais, como podemos
observar na tabela seguinte:
Ângela Oliveira 2007/2008 33
Programação I
Tipos de Dado Caracter (continuação)
Representação Significado
\n Nova linha
\b Retrocesso
\t Tabulação
\f Nova página
\’ Apóstrofe
\” Aspas
\\ Barra Invertida
Ângela Oliveira 2007/2008 34
Programação I
Tipos de Dados Lógicos
Esta categoria também possui apenas um único tipo que é o
boolean .
Uma variável deste tipo pode armazenar apenas dois valores
lógicos: true (verdadeiro) ou false (falso).
Em algumas linguagens de programação é feita associação
do “0” e “1”, a verdadeiro e falso, mas não é o caso do JAVA.
Ângela Oliveira 2007/2008 35
Programação I
Declaração de Variáveis
O que é uma variável?
Uma variável é um nome definido pelo programador ao qual
pode ser associado um valor pertencente a um certo tipo de
dados.
Uma variável pode ser vista como uma memória capaz de
armazenar um valor de determinado tipo.
Uma variável possui um nome, um tipo e um conteúdo.
36
Programação I
Declaração de Variáveis (continuação)
Para usar uma variável é necessário declará-la antes.
Sintaxe da declaração de variáveis:
tipo_de_dado nome_da_variável; ou
tipo_de_dado nome_da_variável =valor_inicial;
Ângela Oliveira 2008/2009 ©
37
Programação I
Declaração de Variáveis (continuação)
Nome de uma variável?
O nome pode ser uma sequência de caracteres alfabéticos e numéricos, iniciados por
uma letra ou pelos caracteres underscore “_” ou cifrão “$”.
Os nomes não podem conter outros símbolos gráficos, operadores ou espaços em
branco.
O nome de uma variável pode ter o comprimento que o programador entender, mas
apenas os primeiros 32 caracteres são usados para distinguir diferentes variáveis.
Exemplo : char a_primeira_inicial_do_meu_primei$ro_nome =‘a’;
char a_primeira_inicial_do_meu_segund$o_nome=‘c’;
São iguais ou diferentes?
Ângela Oliveira 2008/2009 ©
TECNOLOGIAS DA INFORMAÇÃO E MULTIMEDIA
ENGENHARIA INFORMÁTICA
PROGRAMAÇÃO I
1 de 4
Definimos Algoritmo como a sequência de passos que visam atingir um objetivo bem definido.
Os algoritmos são utilizados no dia-a-dia para a solução dos mais diversos problemas.
Alguns exemplos genéricos de algoritmos usados no nosso dia-a-dia são:
um manual de instruções,
uma receita de um bolo,
uma pesquisa na lista telefónica, etc.
O que têm em comum?
Podem ser vistas como uma serie finita e bem definida de passos ou regras que,
quando realizadas, atingem um objetivo previamente definido.
Propriedades de algoritmos:
•instruções simples e bem definidas;
• sequência ordenada de instruções;
• sequência finita de passos.
Ângela Oliveira © 2 de 4
Uma forma de construir algoritmos de uma forma mais simples é recorrendo às cinco
“Perguntas – Chave:”
1. Qual o objectivo do algoritmo?
2. Quais são os dados de entrada?
3. Qual o processamento a efectuar?
4. Quais serão os dados de saída?
5. Existem restrições/regras específicas do problema?
Exemplo: Consideremos o seguinte problema:
Calcular a média das seguintes disciplinas:
Multimédia I
Lógica
Probabilidade e Estatística
Interfaces Pessoa-Máquina I
Programação I
Resposta às perguntas chave:
Qual o Objectivo do algoritmo? Calcular a média das disciplinas indicadas.
Quais são os dados de entrada? As notas de Multimédia I, Lógica, Probabilidade e Estatística,
Interfaces Pessoa-Máquina I e Programação I.
Qual o processamento a efectuar? Calcular a soma das cinco notas e dividir por 5.
Quais serão os dados de saída? A média final.
Existem restrições/regras específicas do problema? Os valores inseridos para as notas não
podem ser negativos, nem maiores que vinte.
Ângela Oliveira © 3 de 4
Exercícios
Construa algoritmos para os seguintes casos:
1- Fazer uma torrada.
2- Requisitar um livro.
3- Somar dois números.
4- Ler a nota de um aluno e aplicar um bonús de 5%.
5- Tendo como dados de entrada dois pontos quaisquer no plano, P(x1,y1) e
P(x2,y2), escreva a distância entre eles.
A fórmula que efetua tal cálculo é:
6- O custo ao consumidor de um carro novo é a soma do custo de fábrica com
a percentagem do distribuidor e dos impostos (aplicados ao custo de
fábrica). Supondo que a percentagem do distribuidor seja de 28% e os
impostos de 45%, escrever um algoritmo que leia o custo de fábrica de um
carro e escreva o custo ao consumidor.
7- Calcule a média aritmética das 3 notas de um aluno e mostre, além do valor
da média, uma mensagem de "Aprovado", caso a média seja igual ou
superior a 10, ou a mensagem "Reprovado", caso contrário.
8- Ler um valor e escreve a mensagem: “È múltiplo de 3? ou Não é múltiplo de
3?”.
9- Dada a idade de um nadador classifica-o numa das seguintes categorias: infantil A = 5 - 7 anos infantil B = 8-10 anos juvenil A = 11-13 anos juvenil B = 14-17 anos adulto = maiores de 18 anos
Ângela Oliveira © 4 de 4
10- Ler três números inteiros e mostrar o maior deles.
11- Lê um conjunto de 4 valores i, a, b, c, onde i é um valor inteiro positivo e a, b, c, são quaisquer valores reais:
a) Se i=1 escrever os três valores a, b, c em ordem crescente. b) Se i=2 escrever os três valores a, b, c em ordem decrescente. c) Se i=3 escrever os três valores a, b, c de forma que o maior entre a,
b, c fique dentre os dois.
12- Recebe um número e verifica se esse número é ou não par.
Ângela Oliveira 2008/2009 © 1
Declaração de Variáveis (continuação)
Exemplo:
// Exemplo de utilização de variáveis
public class Exemplo_Var {
public static void main (String[] args) {
int alunos = 120;
System.out.println ("Entraram " +alunos+" na EST!");
alunos=200;
System.out.println ("No total existem "+alunos+" alunos!");
}
}
Programação I
2
Declaração de Variáveis (continuação)
No exemplo anterior para além de se ter definido a variável alunos como
sendo do tipo int é efectuada também uma instrução de atribuição coloca
numa variável o resultado de uma expressão:
nome_da_variável = expressão;
Uma instrução deste tipo leva o computador a calcular o valor da expressão e
a armazená-lo na variável indicada . O valor anterior armazenado na variável
é perdido. Ou seja:
Programação I
Ângela Oliveira 2008/2009 ©
3
Declaração de Variáveis (continuação)
alunos 120 alunos 200
A variável alunos é
inicializada com o valor
120
É efectuada a atribuição
alunos=200;
A variável alunos fica agora com o valor 200;
Ângela Oliveira 2008/2009 ©
Programação I
4
Exercício 1:
// Exemplo de utilização de variáveis
public class Exemplo_Var_teste {
public static void main (String[] args) {
int max = 1;
System.out.println (“O valor de max é " +max+"!");
System.out.println (“Agora o valor de max é " +max+"!");
max=5;
//System.out.println (“Mas max é"+max+“!");
}
}
Ângela Oliveira 2008/2009 ©
Programação I
5
Exercício 2: Quais dos seguintes nomes de variáveis estão correctos?
a) $mineb) %minec) x2d) 2xe) total-geralf) total geralg) total_geralh) ExpDatai) Voidj) _maximok) TOTAL
Ângela Oliveira 2008/2009 ©
Programação I
6
Exercício 3: Quais das seguintes declarações de variáveis estão correctos?
a) Int i;b) int i,j; c) int i, int j;d) double valor_medio; e) char letra=c; f) boolean ok=1;g) boolean ok=false;h) float angulo=1,57*108
i) float angulo=1,57E8 j) float angulo=1.57*108
k) int quantidade=0; quantidade=1;
Ângela Oliveira 2008/2009 ©
Programação I
7
Operadores
O JAVA possui operadores de vários tipos:
• Operadores Aritméticos;
• Operadores Relacionais;
• Operadores Lógicos;
• Operadores de Atribuição (=).
Ângela Oliveira 2008/2009 ©
Programação I
8
Operadores Aritméticos
Operador Significado Exemplo
+ Adição a+b
- Subtracção a-b
* Multiplicação a*b
/ Divisão a/b
% Resto da divisão inteira a%b
- Sinal negativo -a
+ Sinal positivo +a
++ Incremento unitário ++a ou a++
-- Decremento unitário --a ou a--
Ângela Oliveira 2008/2009 ©
Programação I
9
Operadores Aritméticos (continuação)
Exemplos: Qual o resultado?
int a = 5; int b=2;System.out.println ("a= "+a);System.out.println (“b= "+b);System.out.println ("a+b="+(a+b));System.out.println ("a-b="+(a-b));System.out.println ("a*b="+(a*b));System.out.println ("a/b="+(a/b));System.out.println ("a%b="+(a%b));System.out.println ("-a="+(-a));System.out.println ("a++="+(a++));System.out.println ("++b="+(++b));System.out.println ("a--="+(a--));System.out.println ("--b="+(--b));
Ângela Oliveira 2008/2009 ©
Programação I
10
Operadores Aritméticos (continuação)
Exemplos: Solução (com instruções separadas):
a= 5b= 2a+b=7a-b=3a*b=10a/b=2a%b=1-a=-5a++=5 a++=5 a=6 (para instruções encadeadas)++b=3a--=5 a--=6 a=5 (para instruções encadeadas)--b=1 --b=2 b=2 (para instruções encadeadas)
Ângela Oliveira 2008/2009 ©
Programação I
11
Operadores Relacionais
Operador Significado Exemplo
== Igual a==b
!= Diferente a!=b
< Menor que a < b
<= Menor ou igual a a < =b
> Maior que a > b
>= Maior ou igual a a > =b
Ângela Oliveira 2008/2009 ©
Programação I
12
Operadores Aritméticos (continuação)
Exemplos: Qual o resultado?
int a = 15; int b=12;System.out.println ("a= "+a);System.out.println (“b= "+b);System.out.println ("a==b ---"+(a==b));System.out.println ("a!=b ---"+(a!=b));System.out.println ("a < b ---"+(a < b));System.out.println ("a <= b ---"+(a <= b));System.out.println ("a > b ---"+(a > b));System.out.println ("a >= b ---"+(a >= b));
Ângela Oliveira 2008/2009 ©
Programação I
13
Operadores Lógicos
Operador Significado Exemplo
&& E lógico (and) a&&b
|| Ou lógico (or) a!=b
! Negação (not) !a
Ângela Oliveira 2008/2009 ©
Programação I
14
Estruturas de Controlo
Ângela Oliveira 2008/2009 ©
Programação I
15
Quando se escrevem algoritmos existem situações como a seguinte:
“Verificar se um número é diferente de zero.”
Algoritmo:
Dados de entrada: um valor inteiro
Dados de saída: verdadeiro ou falso
Se numero==0 então
Devolve verdadeiro
Senão
Devolve falso
Ângela Oliveira 2008/2009 ©
Programação I
16
Ou seja, na maioria dos casos, é necessário que o programa tome decisões.
Assim, os comandos que tomam decisões são chamados de fluxos ou estruturas
de controlo.
No Java existem as seguintes estruturas de controlo:
1. if – else;
2. while;
3. do – while;
4. for;
5. switch;
6. break;
7. continue;
Ângela Oliveira 2008/2009 ©
Programação I
17
1. if – else:
Sintaxe:
if (expressão_booleana)
comando 1;
[else
comando 2];Esta expressão é formada por
operadores lógicos e relacionais.
Se a expressão for verdadeira(true), executa o comando 1,
caso seja falsa (false) executa o comando 2
Ângela Oliveira 2008/2009 ©
Programação I
18
1. if – else(continuação):
Exemplos:
1. Voltando ao algoritmo, como podemos transformá-lo em código JAVA.
A estrutura de controlo if-else resolve o problema:
Ângela Oliveira 2008/2009 ©
Programação I
19
1. if – else(continuação):
Exemplos:
2. Para que um
comando execute mais
do que uma instrução é
necessário que o bloco
de código esteja entre {
}:
Ângela Oliveira 2008/2009 ©
Programação I
20
1.if – else(continuação):
Exemplos:
3. è ainda possível
combinar várias instruções
na expressão booleana de
teste:
Ângela Oliveira 2008/2009 ©
Programação I
21
2. While:
Implementa um ciclo para executar um bloco de comandos
sucessivas vezes.
A instrução de comparação é avaliada antes do ciclo começar.
Sintaxe:
while (expressão_booleana){
comandos;
}
Enquanto a expressão for verdadeira (true), o ciclo será
executado
Ângela Oliveira 2008/2009 ©
Programação I
22
1. While (continuação):
Exemplo:
while (i!=0){
salário = salário * 0.5;
i--;
}
Ângela Oliveira 2008/2009 ©
Programação I
23
3. do - while:
Esta estrutura de controlo é semelhante à anterior, mas neste
caso o conjunto de comandos do ciclo é executado pelo menos
uma vez. A instrução de comparação é avaliada depois do ciclo
ser executado.
Sintaxe:
do{
comandos;
}while (expressão_booleana);
Ângela Oliveira 2008/2009 ©
Programação I
24
4. for:
É um ciclo que possui uma parte inicial com a inicialização das
variáveis, seguida por uma expressão de comparação e depois
uma parte final com o incremento ou decremento a aplicar.
Sintaxe:
for (inicialização; condição; iteração){
comandos;
}
Ângela Oliveira 2008/2009 ©
Programação I
25
4. for (continuação):
Exemplos:
1. for (i=0; i <20; i++){
salario=salario*0.5;}
2. for (int i=10; i >0; i--){ //podem inicializar-se var iáveis dentro do ciclo
comandos; }
3.int i=0;
for (; <20;){ //O único elemento no ciclo “for” que não é dispensável é a condição
comandos;
}
Ângela Oliveira 2008/2009 ©
Programação I
26
4. for (continuação):Exemplos:
4. for (i=0, j= 10; i <8 && j >2; i++, j--){
comando;
}
A inicialização e incremento podem ser feitos com mais do que uma
variável, separadas por vírgulas.
Ângela Oliveira 2008/2009 ©
Programação I
Ângela Oliveira 2007/2008
Exercício:
Escreva o algoritmo e respectivo código de um programa em que dados os valores de a, b e c, calcule as duas raízes de um polinómio de segundo grau usando a fórmula resolvente.
27
Programação e Algoritmos I
Programacão I
Estruturas de Controlo(continuação)
1Ângela Oliveira 2008/2009 ©
ProgramacãoI
5. switch:É um ciclo que avalia uma expressão contra vários resultados possíveis. O valor a avaliar só
pode ser char, byte, short ou int.
Sintaxe:
switch (expressão){
case valor1:
comando1;
break;
case valor2:
comando2;
break;
…
[default:
comando_default;]
}
2Ângela Oliveira 2008/2009 ©
Exemplo 1:switch(i){
case 1:
System.out.println(“um");
break;
case 2:
System.out.println(“dois");
break;
default:
System.out.println(“outro número");
break;
}
Programacão I
3Ângela Oliveira 2008/2009 ©
Exemplo 2: Switch dentro de outro switch:import cs1.*; // Uso de switch encadeado
public class Switchduplo {
/* É pedida a opção a escolher e dois valores inteiros
- se o utilizador inserir a opção 1 pode escolher entre fazer a adição ou subtracção dos valores;
- se o utilizador inserir a opção 2 pode escolher entre fazer a multiplicação ou divisão dos valores. */
public static void main(String[] args) {
int opcao, valor1, valor2;
char escolha;
System.out.println("Insira o primeiro valor:");
valor1=Keyboard.readInt();
System.out.println("Insira o segundo valor:");
valor2=Keyboard.readInt();
System.out.println("Insira uma opção:");
opcao=Keyboard.readInt();
Programacão I
4Ângela Oliveira 2007/2008 ©
switch(opcao){case 1:
System.out.println("Qual a operação que deseja efectuar? + ou -?");
escolha=Keyboard.readChar();
switch (escolha){case '+':
System.out.println(" A soma é: "+ (valor1+valor2) );
break;case '-':
System.out.println(" A subtracção é: "+ (valor1-valor2) );
break;default:System.out.println("Operação inválida!!!");
}
break;
Programacão I
5Ângela Oliveira 2008/2009 ©
case 2:System.out.println("Qual a operação que deseja efec tuar? * ou /?");
escolha=Keyboard.readChar();
switch (escolha){
case '*':
System.out.println(" A multiplicação é: "+ (valor1 *valor2) );
break;
case '/':
System.out.println(" A divisão é: "+ (valor1/valor 2) );
break;
default:
System.out.println("Operação inválida!!!");
break;
}
break;
default:
System.out.println("Opção Inválida!!:");
}
}
}
Programacão I
6Ângela Oliveira 2008/2009 ©
6. break :
Não se trata de um ciclo mas de um comando que está directamente
relacionado com os ciclos.
Quando se encontrar o comando break num ciclo, é parada a sua
execução.
Pode também usar-se para forçar a saída de blocos de instruções
condicionais como é o caso do switch.
Programacão I
7Ângela Oliveira 2008/2009 ©
Exemplo 3:
Programacão I
8Ângela Oliveira 2008/2009 ©
7. continue :Este comando também interrompe a execução do ciclo ao
contrário do break, não sai do ciclo, passa para a instrução
seguinte mas dentro do ciclo.
Programacão I
9Ângela Oliveira 2008/2009 ©
Exemplo 4:
Programacão I
10Ângela Oliveira 2008/2009 ©
Exercício:
Escrever um programa que apresente ao utilizador os números de
1 a 50.
Use três estruturas de controlo diferentes.
Programacão I
11Ângela Oliveira 2008/2009 ©
Solução1: Estrutura de controlo - while
public class EstruturaControlo1 {
public static void main(String[] args) {
int i=1;
while (i<=50){
System.out.println(i);
i++;
}
}
}
Programacão I
12Ângela Oliveira 2008/2009 ©
Solução 2: Estrutura de controlo – do - while
public class EstruturaControlo2 {
public static void main(String[] args) {
int i=1;
do{
System.out.println(i);
i++;
} while (i<=50) ;
}
}
Programacão I
13Ângela Oliveira 2008/2009 ©
Programacão I
Solução 3: Estrutura de controlo – for
public class EstruturaControlo3 {
public static void main(String[] args) {
for (int i=1; i<=50; i++){
System.out.println(i);
}}
}
14Ângela Oliveira 2008/2009 ©
Programação I
Trabalho de Grupo
Ângela Oliveira
2008/09
1
1. O que é uma variável?
2. O que são tipos de dados?
3. Qual a diferença entre atribuição e comparação?
4. Considere três números inteiros x=12, y=-5 e z=3.
4.1. Como declara estes valores em JAVA?
4.2. Se pretendesse calcular a soma como faria?
5. Considere um terreno se pretender calcular a área, quais as variáveis
que teria que definir?
6. Considere a=5 e b=8. Como representa estas variáveis? E a divisão
delas?
7. Qual a diferença entre um caracter e uma String?
7.1. Declare duas variáveis do tipo String;
7.2. Declare duas variáveis do tipo caracter.
8. O que são valores booleanos? Declare um valor do tipo booleano.
9. Qual a diferença entre inicializar uma variável e declará-la?
10. Declare e inicialize uma variável inteira, uma real, uma booleana, um
caracter e uma String.
Programação I
Trabalho de Grupo
Ângela Oliveira
2008/09
2
11. Considere a seguinte tabela. Faça a correspondência entre a Coluna
A e a Coluna B.
Coluna A Coluna B
1 a+b Operador de Relacional de
igualdade
A
2 true==true Operador de Relacional de
diferente
B
3 a%b Operador da Soma C
4 a!=b Operador lógico de conjunção D
5 a=b Operador lógico de negação E
6 a&&b Operador de atribuição F
7 !a Operador resto da divisão G
12. Considere x=1, y=3.
Qual o resultado das seguintes instruções?
public class Operadores { public static void main(String[] args) {
int x=1; int y=3; int z, w;
System.out.println("x=" + x+ "\t y="+y); x++; System.out.println("x=" + x); --y; System.out.println("y="+y); z=++x; System.out.println("x=" + x+ "\t z="+z); w=y--; System.out.println("w=" + w+ "\t y="+y);
} }
Programação I
Ficha 3
Ângela Oliveira P á g i n a | 1
2008/09
Escreva um programa que:
1. Apresente no ecrã os primeiros 100 números.
2. Escreva um ciclo for que tenha o seguinte output: 5 10 15 20 25 30 35 40 45
50
3. Apresente as raízes quadradas de todos os números entre 1 e 20.
4. Associe um valor qualitativo a valores de notas quantitativas:
1 – Mau;
2 – Medíocre;
3- Suficiente;
4 – Bom;
5 – Muito Bom.
5. Dados dois inteiros apresente:
- a sua soma se ambos forem pares;
- o seu produto se ambos forem impares;
- o número par se um for par e o outro impar.
6. Recebe do utilizador dois valores inteiros e um operador aritmético e
devolva o resultado da operação escolhida.
7. Dados três valores pedidos ao utilizador, devolva o menor e o maior dos
três.
Programação I
Ficha 4
Ângela Oliveira P á g i n a | 2
2008/09
8. Elabore um programa que dado o número do mês do ano indica quantos
dias tem esse mês. Utilize para o efeito a estrutura de controlo condicional
switch.
9. Elabore um programa que dado uma letra indique se é vogal ou
consoante.
10. Escreva um programa, em Java, que dado um inteiro n escreve no écran
a tabuada de
multiplicar correspondente. Por exemplo, para n=5 devemos obter:
1x5=5
2x5=10
...
10x5=50.
11. Escreva um programa que some todos os números introduzidos no
teclado, até o utilizador inserir um número negativo. No final deverá
imprimir a média desses números.
Programação I
Ficha 4
Ângela Oliveira
2008/09
1
1. Escreva um programa que dados os valores:
int i=7;
int j=-9;
double x=72.3;
double y=0.34;
1.1. Calcule o respectivo valor absoluto.
1.2. O inteiro maior ou igual que o valor considerado para os valores
reais;
1.3. O inteiro menor ou igual que o valor considerado para os valores
reais;
1.4. O mínimo entre:
1.4.1. i e j;
1.4.2. x e y;
1.4.3. i e x;
1.4.4. y e j.
1.5. O máximo entre:
1.5.1. i e j;
1.5.2. x e y;
1.5.3. i e x;
1.5.4. y e j.
1.6. O valor de “PI”;
1.7. O valor de “e”.
2. Calcule a área da circunferência de raio 2.
Programação I
Ficha 4
Ângela Oliveira
2008/09
2
3. Apresente ao utilizador três números aleatórios.
4. Apresente 50 números aleatórios entre 0 e 10.
5. Calcule x ao quadrado, com x um valor inserido ao utilizador.
6. Solicite ao utilizador dois valores x e y. Calcule x elevado a y.
7. Considere uma variável do tipo String que guarde o seu nome:
7.1. Mostre o conteúdo da variável;
7.2. Determine o seu comprimento;
7.3. Apresente a última letra do seu nome;
7.4. Converta tudo para maiúsculas;
7.5. Substitua todas as ocorrências do caracter ‘a’ pelo caracter ‘#’.
Programacão I
FunçõesMatemáticas e de
String
1Ângela Oliveira 2008/2009 ©
Funções Matemáticas
Existem no JAVA, predefinidas dentro da Classe Math, que permitem
efectuar diversos cálculos.
Sintaxe: Math.<nome da função>(<argumentos da função>);
Exemplo: Raiz quadrada de 2
Math.sqrt(2)
argumento da Função - o valor 2.
Função matemática da raiz quadrada
Programacão I
2Ângela Oliveira 2008/2009 ©
Não é necessário fazer o import desta classe (ao contrário da classe Keyborad, por
exemplo), uma vez que ela faz parte do package java.lang, inserido por defeito no
Eclipse.
Existem duas constantes definidas na classe Math:
Math.PI – que representa o valor de =3.141592…
Math.E – que se refere ao valor da base para logaritmos naturais e =2.71828…
Nestes dois casos como não se trata de funções matemáticas, mas sim de constantes
não existem argumentos.
π
Programacão I
3Ângela Oliveira 2008/2009 ©
Programacão I
Exemplo 1:
4Ângela Oliveira 2008/2009 ©
Programacão I
Função ceil():
Esta função permite
arredondar um valor do
tipo double para o
inteiro seguinte mais
próximo.
Sintaxe: Math.ceil(<valor do tipo double>)
5Ângela Oliveira 2008/2009 ©
Programacão I
Função floor():
Esta função permite
arredondar um valor do
tipo double para o
inteiro anterior mais
próximo.
6Ângela Oliveira 2008/2009 ©
Programacão IFunção max():
Esta função é utilizada para devolver o maior entre dois números do tipo int,
float, double ou long.
Sintaxe: Math.max(<valor1>,<valor2>)
Função min():
Esta função é utilizada para devolver o menor entre dois números do tipo int,
float, double ou long.
Sintaxe: Math.min(<valor1>,<valor2>)
Observação: A comparação pode ser feita entre valores de tipos diferentes, por exemplo,
entre um int e um double.
7Ângela Oliveira 2008/2009 ©
Programacão I
Função pow():
Esta função permite elevar um número a uma potência.
Sintaxe: Math.pow(<valor da base>,< valor da potência>)
Função random():
Esta função permite gerar valores aleatórios. Cada vez que esta função é
chamada o Java “escolhe” um número do tipo double.
Sintaxe: Math.random()
8Ângela Oliveira 2008/2009 ©
Programacão I
Exemplo 2:
9Ângela Oliveira 2008/2009 ©
Programacão I
Exemplo 3: Utilizar a função matemática random()
Gerar dois números
aletáorios.
10Ângela Oliveira 2008/2009 ©
Programacão I
Exemplo 4: Utilizar a função
matemática random():
Gerar dez números
aletáorios entre 0 e
99.
11Ângela Oliveira 2008/2009 ©
Programacão I
Funções de String
Uma String é uma conjunto de caracteres, por exemplo, palavras e
frases, são Strings.
O Java possui várias funções que permitem efectuar algumas operações
com Strings, entre elas:
•Ver o comprimento da String;
•Transformar todas as letras em minúsculas ou todas as letras em maiúsculas;
•Devolver uma parte de uma String;
•Remover os espaços em branco;
•Substituir alguns caracteres numa String;
12Ângela Oliveira 2008/2009 ©
Programacão I
Função length():
Esta função permite ver o comprimento de uma String.
Sintaxe: <string>.length()
Sintaxe: Math.ceil(<valor do tipo double>)
13Ângela Oliveira 2008/2009 ©
Programacão I
Função toUpperCase() e toLowerCase:
Estas funções permitem, converter todos os caracteres de uma String, respectivamente, em
Maiúsculas e em Minúsculas.
Sintaxe: <string>. toUpperCase()
<string>. toLowerCase()
Sintaxe: Math.ceil(<valor do tipo double>)
14Ângela Oliveira 2008/2009 ©
Programacão I
Função substring():
Esta função permite devolver uma parte de uma String, fornecendo como argumento o ponto
inicial e o ponto final, da substring que se pretende.
Sintaxe: <string>. substring(<indice inicial>, <indice final>)
Sintaxe: Math.ceil(<valor do tipo double>)
15Ângela Oliveira 2008/2009 ©
Programacão I
Função trim():
Esta função permite eliminar de uma String todos os espaços em branco, colocados no início ou
no fim da mesma.
Sintaxe: <string>. trim()
Sintaxe: Math.ceil(<valor do tipo double>)
16Ângela Oliveira 2008/2009 ©
Programacão I
Função replace():
Esta função permitem substituir um caracter por outro.
Sintaxe: <string>. replace ()
17Ângela Oliveira 2008/2009 ©
Programação I
Ficha 5
Ângela Oliveira
2008/09
1
Escreva um programa que:
1. Dado um número inserido pelo utilizador verifique se é múltiplo de 5 e
não é múltiplo de 3.
2. Gere um número aleatório e o classifique como par ou ímpar.
3. Calcule o máximo, mínimo, a soma, a média de um conjunto de
valores inteiros. O número de valores a inserir deve ser pedido ao
utilizador.
4. Calcule a hipotenusa a partir dos dados dos catetos inseridos pelo
utilizador. Execute repetidamente os cálculos até o utilizador inserir o
carácter ‘n’.
5. Calcule a soma de todos os números de 1 até um valor inserido pelo
utilizador.
6. Que calcule o factorial de um número inserido pelo utilizador.
7. Solicite um número positivo e escreva todos os valores entre 1 e esse
número.
8. Apresente todos os divisores de um número inserido pelo utilizador.
9. Solicite uma palavra ao utilizador e termine apenas quando a palavra
inserida tiver mais do que 6 caracteres.
10. Calcule o produto dos números impares de 1a 20.
11. Solicite uma letra e um número ao utilizador e repita essa letra tantas
vezes quantas o número inserido.
Programação I
Ficha 5
Ângela Oliveira
2008/09
2
Exercícios Facultativos
12. Receba um inteiro positivo e devolva a soma dos seus digitos. Ex. 1532
� 11=1+5+3+2
13. Calcule e imprima todos os números primos entre 1 e um número
inserido pelo utilizador.
14.
Fazer Ler a Ler b Ler c Se a=0 //bx+c=0 Se b=0 Escrever "Erro" Senão x=-c/b Escrever x Senão raiz=b*b - 4*a*c Se raiz maior ou igual a zero x1=(-b-raiz quadrada de raiz)/(2*a) x2=(-b+raiz quadrada de raiz)/(2*a) Escrever x1 e x2 Senão Escrever "Erro" Ler op Enquanto (op=1)
1
Programação I
Tipos de dados avançados
Arrays (Vectores):
Permitem o armazenamento de informação do mesmo tipo.
Exemplo
Cores Primárias → [vermelho, azul, amarelo]
Números Inteiros de 1 a 10 → [1,2,3,4,5,6,7,8,9,10]
Formas Geométricas → [triangulo, circulo, quadrado,…]
Ângela Oliveira 2008/2009 ©
2
Programação I
Arrays em JAVA:
Um array em JAVA é uma classe.
Assim para declarar um array em JAVA é necessário usar o
comando “new”.
Sintaxe de declaração de arrays
Tipo_de_dados[] nome_array=new Tipo_de_dados[tamanho_array]
Em que Tipo_de_dados é o tipo de elementos que o array vai
conter e tamanho_array, vai ser a dimensão pretendida.
Ângela Oliveira 2008/2009 ©
3
Programação I
Exemplo:int [] idades = new int[10];
Corresponde a:
0 1 2 3 4 5 6 7 8 9Posição
Pode conter 10 valores inteiros
Ângela Oliveira 2008/2009 ©
4
Programação I
0 1 2 3 4 5 6 7 8 9
1 56 8 90 18 33 5 9 28 45
Como aceder a uma posição do array?
O nome do vector é idades então:
idades[0] =1
idades[5]=33
idades[8]=28
Ângela Oliveira 2008/2009 ©
5
Programação I
Exercício:
Construir um array que guarde 5 nomes e inicialize
cada posição :
Solução:
String [] nomes=new String [5];nomes[0]=“Sara”;nomes [1]=“Paulo”;nomes [2]=“Daniela”;nomes [3]=“Filipe”;nomes [4]=“Joaquina”;
Ângela Oliveira 2008/2009 ©
6
Programação I
Então o array ficaria:
Outra forma de inicializar este vector é definir um conjunto
dos nomes que se pretendem, ou seja:
0 1 2 3 4
Sara Paulo Daniela Filipe Joaquina
Ângela Oliveira 2008/2009 ©
7
Programação I
Exemplo 1: Declarar e inicializar um vector
Ângela Oliveira 2008/2009 ©
8
Programação I
Exemplo 2: Declarar e inicializar um vector
Ângela Oliveira 2008/2009 ©
9
Programação I
Exemplo 3: Declarar e inicializar um vector com
erro!
Ângela Oliveira 2008/2009 ©
Ao inicializar a posição 5 do arrayvai acontecer o erro que indica que o limite do array foi excedido
10
Programação I
Exemplo 4: Inicializar um array com os dez
primeiros números inteiros.
Ângela Oliveira 2008/2009 ©
11
Programação I
Exemplo 5: Inicializar um array com os cem
primeiros números inteiros.
Utilizar a forma do exemplo anterior não é eficaz.
Qual será a solução para o problema?
Ângela Oliveira 2008/2009 ©
12
Programação I
Solução:
Ângela Oliveira 2008/2009 ©
13
Programação I
MatrizesComo se representará uma matriz em JAVA?
Considere-se a matriz seguinte:
Será, que com um array é possível representar esta matriz?
−
−=
864
205
301
A
Ângela Oliveira 2008/2009 ©
14
Programação I
Tal como nos arrays uma matriz de 3x3, começa em 0 e
termina em 2, quer para as linhas quer para as colunas. Assim:
−
−=
864
205
301
A
Ângela Oliveira 2008/2009 ©
Este valor está na linha 1, coluna 3, mas corresponde ao elemento da linha zero, coluna dois.
coluna
1 20
linha
0
1
2
15
Programação I
Um só array não é suficiente, uma vez que para uma matriz
são necessárias duas posições, uma para a linha outra para a
coluna, ou seja:
coluna
−
−=
864
205
301
AEste valor está na linha 1, coluna 3
linha
Ângela Oliveira 2008/2009 ©
16
Programação I
O Java não possui arrays Multi-dimensionais, mas permite declarar um array que é baseado em outro array.
Exemplo:
int [] [] matriz =new int [3] [3];
Implementado no Eclipse tem-se:
Ângela Oliveira 2008/2009 ©
17
Programação I
Exemplo 6: Declarar e inicializar uma matriz.
Ângela Oliveira 2008/2009 ©
Ângela Oliveira 2007/2008 © 18
Programação I
Exemplo 7: Declarar e inicializar uma matriz.
19
Programação I
Exemplo 8: Declarar e inicializar uma matriz
com erro.
Ao inicializar a posição [3,3] da matriz vai acontecer o mesmo erro que aconteceu nos arrays, que indica que o limite do array foi excedido.
Ângela Oliveira 2008/2009 ©
20
Programação I
Exercícios
1. Inicializar uma matriz com 5 linhas e 5
colunas com todos os valores iguais a
100 e mostrar ao utilizador.
2. Considerar uma matriz com 3 linhas e 3
colunas e construir a matriz identidade.
Mostrar ao utilizador.
Ângela Oliveira 2008/2009 ©
21
Programação I
Resolução 1:
Ângela Oliveira 2008/2009 ©
22
Programação I
Resolução 2:
Ângela Oliveira 2008/2009 ©
Programação I
Ficha 6
Ângela Oliveira P á g i n a | 1 2008/09
Escreva um programa que:
1. Verifique se dois arrays unidimensionais são iguais.
2. Leia para um vector 10 valores inteiros e os apresente por ordem.
3. Permita verificar quantos múltiplos de 5 existem num vector de 10 inteiros.
4. Qual o máximo de um array de 10 valores do tipo float.
5. Complete o programa anterior de modo a que este devolva também o mínimo, a
soma e a média dos 10 valores.
6. Construa um vector com nomes.
6.1. O utilizador indica o número de nomes que pretende inserir.
6.2. Insere os nomes.
6.3. Mostre ao utilizador, o nome com maior comprimento.
6.4. Substitua em todos os nomes o 1º carácter por ‘#’.
7. Ler dois arrays de 10 números reais (A e B) e:
7.1. calcular S = (A[1] * B[10]) + (A[2] * B[9]) + ...;
7.2. calcular C, sendo C[i] = A[i] / B[i], e imprimi-lo invertido;
7.3. imprimir os números pares de A (considerando a parte inteira dos
números).
8. Construa uma matriz 3x3 e devolva os elementos da diagonal principal.
9. Ler uma matriz M 5 x 5, calcular e escrever as seguintes somas:
9.1. da linha 4 de M
9.2. da coluna 2 de M
9.3. da diagonal principal
9.4. de todos os elementos da matriz
Programação I
Ficha 6
Ângela Oliveira P á g i n a | 2 2008/09
10. Ler uma matriz A de 5x5 e criar 2 vectores SL e SC de 5 elementos que
contenham respectivamente as somas das linhas e das colunas de A. Escrever os
vectores criados.