Programação1

76
Â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 ©

description

Introdução a linguagem Java I, com fichas praticas

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.

Programação I

Ficha 6

Ângela Oliveira P á g i n a | 3 2008/09