You are on page 1of 36

Robert Chatley

1

Linguagem Kenya
1 -A Linguagem Kenya - Histórico Toda linguagem de programação precisa de um nome. Como o nome JAVA diz respeito a uma cidade produtora de café, o autor da linguagem KENYA escolheu este nome, que também é um nome de café, por achar mais light do que o JAVA e, desta forma serviria como uma introdução antes de enfrentar a dificuldade do JAVA. Kenya é uma linguagem de programação para ensinar programação. O ambiente Kenya converte automaticamente um código escrito em Kenya para Java. Kenya foi projetada e desenvolvida por Robert Chatley com ajuda de Susan Eisenbach. A maioria do trabalho no desenvolvimento da versão2 foi feita por Alan Chan. Ela está sendo mantida por Christoper Anderson. O logotipo é de autoria de Astok Argent-katwala.

2 – Ambiente Kenya
Kenya roda nas plataformas Windows e Linux e é necessário que a linguagem Java esteja instalado em sua máquina, pois foi escrito em Java.

3- Inicializando Kenya
Após instalar a linguagem Kenya, crie um atalho na área de trabalho do arquivo run.bat para que seja inicializada e aberta a janela principal, onde encontraremos o editor, com numeração de linhas e uma barra de ferramentas como explica também abaixo.

2

4 - A Estrutura de um Programa
O conjunto de instruções do programa principal deverá estar compreendido na seguinte estrutura: Void main() { … } Todo programa escrito na linguagem Kenya tem a extensão .K Quando pedimos para interpretar algum programa, a função main(principal) é localizada, pois é a partir dela que as funções, inclusive as que você criou, serão chamadas. A palavra void que antecede main significa que não existirá nenhum tipo de retorno. Todos os comandos serão finalizados com ; (ponto e vírgula). A linguagem é case sensitive, isto é, diferencia letras maiúsculas de minúsculas, portanto atenção com as sintaxes.

5 – Comentários
São explicações colocadas em pontos estratégicos, visando dar maior clareza em determinados trechos e que não são visualizadas na execução. // Usado para uma única linha /*…*/ Usado para envolver um conjunto de linhas

6 – As Funções de Saída
A linguagem Kenya apresenta duas funções para mostrarmos os resultados na tela: 1 - print(); A função pint() não faz retorno de carro, isto é, não desloca o cursor para a Primeira coluna da linha seguinte. Os argumentos deverão ficar entre parênteses e as Strings(conjunto de caracteres) deverão ficar entre aspas, mas se for um único caracter, ficará entre Plicas(aspas simples). Exemplo 1:

3

{ println(“UNESA”). desloca o cursor para a primeira coluna da linha seguinte.Exemplo 2: 2 . print(“Programação I”).A função println(). } Caracteres usados com as funções de saída(seqüência de escape): ‘\n’ Desloca o cursor para a primeira coluna da linha seguinte ‘\t’ ‘\\’ Desloca o cursor para o início da próxima zona. print(“Kenya “). Exemplo 1: Visualize as saídas dos seguintes programas: void main() void main() { println(“UNESA”). Esta função faz retorno de carro. println(“Kenya – Java”). Cada zona tem 8 colunas e são pré-fixadas: 1 9 17 25 33 41 49 57 73 (Windows) Mostra a contra-barra na tela Observação: Embora sejam dois caracteres. logo virão 4 .Java”). println(“. } print(“Programacao I”). isto é. eles são entendidos com um.

Tipos Primitivos de Dados A linguagem Kenya tem os seguintes tipos de dados primitivos:  boolean . etc. ´@` .Entre aspas simples.Tipo de dado lógico que só pode assumir dois valores: true e false  char . + Quando tivermos vários elementos para serem impressos.Tipo de dado que permite um caracter entre plicas: ´S`. 5 . deveremos usar o operador + (mais) para concatená-los Exemplo usando \n: Exemplo usando \t: Exemplo usando \\ e +: 7 .

-1234.1 .718281824459045 Log(8) Log(64) / log(8) Sqrt(34) 6 . -8.) Log(. Exemplo1: 8. “UNESA”..Tipo de dado numérico do tipo ponto flutuante.2 .0 (ponto zero) se os dois forem constantes.5 2^5 256 ^(1.5 4*3 20 /3 ou 20 / 3. Se você desejar uma divisão real.. um dos operandos deverá se tornar real.Funções Matemáticas Exp(. 8 – Operadores. etc. Funções e expressões 8.. (10 dígitos no máximo)  String – Tipo de dado formado por um conjunto de caracteres entre aspas: “CURSO DE ENGENHARIA DE PRODUÇÃO”. etc. acrescentando .Operadores Básicos Operador + * / % ^ Significado Adição Subtração Multiplicação Divisão Resto da Divisão (inteiro ou real) Potenciação Radiciação -> radicando ^(1... e at´16 na parte fracionária)  int – Tipo de dado numérico inteiros: 23.) Calcula a potência do número neperiano Calcula o logaritmo na base neperiana Para se calcular o logaritmo em qualquer base: log( logaritmando ) / log(base) Calcula a raiz quadrada Exp(2) e=2.0/indice) Exemplo 2+3 14 . etc.76.) Sqrt(..0/2) Observações: O operador de / trabalha da seguinte maneira: se o dividendo e o divisor forem inteiros então o quociente será inteiro. 3. (7 dígitos no máximo na parte inteira. double .0.5 30 % 4 ou 30 % 4.

14159265 / 180) Calcula o co-seno cujo ângulo está em rd cos(30 * 3..) Calcula o seno cujo ângulo está em rd Sin(30 * 3...) Calcula o ângulo cujo co-seno é dado Acos(0.5) / 3...14159265 / 180) sin(. acos e atan você precisará converter graus..) Retorna o número sem sinal Abs(-8) Exemplo1: Exemplo2: 7 .14159265 * 180 asin(.) Calcula o ângulo cujo seno é dado Asin(0..5) floor(....14159265 / 180) Para as funções asin..) Calcula o ângulo cujo tangente é dada Atan(0..) Arredonda para cima Ceil(3.14159265 * 180 As três funções abaixo fazem um arredondamento de formas diferentes round(.) tan(.) Arredonda para baixo Floor(3. pois o resultado é dado em radianos : Nome da função (v alor) / 3...5) ceil(.Para as funções sin..14159265 / 180) Calcula o tangente cujo ângulo está em rd tan(30 * 3..) Gera um número aleatório entre 0 e 1 Random( ) não tem argumento abs(.14159265 * 180 atan(...5) random(. cos e tan você precisará converter graus para radianos entre parênteses: Nome da função (ang * 3.5) / 3.) Faz um arredondamento matemático Roun(3...5) / 3...) cos(.14159265 * 180 acos(.

. mas round(. ora com o número de elementos do intervalo e o valor inicial do intervalo. mesmo multiplicado por 6... round(.) levaria para 0 e se gerasse 0.) porque esta função faz arredondamento matemático e teríamos a possibilidade de aparecer tanto o 0 como o 6...) levaria para 6. tendo em vista que ela gera um número aleatório entre 0 e 1 e. combinando com a função random() e criando uma expressão ora só com o valor final. Teremos que levar em consideração as três funções de arredondamento para cada caso.  Usamos round(. Caso 2: O intervalo desejado é de 1 até n 8 .. pois o objetivo era fazer com que fossem gerados vários números no intervalo desejado.Exemplo3: Faremos agora um estudo mais detalhado para que saibamos como usar a função random().. mesmo multiplicado por 6.) gerasse um número muito próximo de 0..999999999999.  Se random(. na maioria das vezes. não será o intervalo desejado. Caso 1: O intervalo desejado é de 0 até n Considerações:  Não se preocupe com alguns comandos usados.

) levaria para 1.  Usamos ceil(. dará 4. multiplicado por 6. Qualquer número gerado por random() que multiplicado por 6 for menor que 1..) levará para 5 que somado a 4. No nosso exemplo : 4.. não dará o número 6.  O segundo passo é verificar o limite inferior do intervalo.  Usamos floor(. No nosso exemplo: (9 – 4) + 1 = 6. Se gerado 0...  O primeiro passo é descobrir quantos números tem o intervalo: (n2 – n1)+1. 8. logo floor(.99999999999.) porque esta função sempre arredonda para baixo.  Se random() gerasse um número muito próximo de 0.Considerações:  Não se preocupe com alguns comandos usados. pois o objetivo era fazer com que fossem gerados vários números no intervalo desejado. ceil(. floor(. pois o objetivo era fazer com que fossem gerados vários números no intervalo desejado. Caso 3: O intervalo desejado é de n1 até n2 Considerações:  Não se preocupe com alguns comandos usados....) porque esta função sempre arredonda para cima e não teríamos a possibilidade de aparecer o 0.3 . dará 9...) levará para o que somado a 4.Operadores Relacionais 9 ..

(algarismos 0-9: 48-57. 8. • Quando os dados são dos tipos Char ou String. etc). letras maiúsculas: 97-122.Expressões lógicas Operadores && ou and II ou or ! Ou not xor true false Significado E( todas as expressões verdadeiras) Ou (pelo menos uma verdadeira) Não (nega a expressão) Exclusivo or(uma ou outra verdadeira) verdadeiro falso Exemplo 2 + 2 == 4 ou ‘a` == ‘b` ‘S`!= ´s` 5<6 3*2>5 2 <= 5 7 >= 3 + 2 Exemplo1: 10 . letras maiúsculas: 65-90. a comparação é feita tendo em vista o código ASCII dos caracteres.4 .Operadores == != < > <= >= Significado igual diferente menor maior menor ou igual maior ou igual Exemplo 2 + 2 == 4 ou ´a` == ‘b` ´S` != ´s` 5<6 3*2>5 2 <= 5 7 >= 3 + 2 A resposta de uma expressão que usa operadores relacionais será: true (V) ou False (F) Exemplo1: Considerações: • Os operadores relacionais podem ser usados com qualquer um dos cinco tipos de dados.

 Elas precisam ser declaradas antes de serem usadas.  O nome da variável deverá começar por uma letra e só poderá ter letra ou algarismos a partir do segundo caracter. resp.Usando Variáveis  As variáveis são lugares na MP(Memória Principal) e são criadas para armazenar dados que serão manipulados no programa. Sintaxe: nome da variável = conteúdo.  Toda variável deverá ser declarada de acordo com o tipo de dado que irá armazenar.  As variáveis precisam ser inicializadas. 11 . logo. não poderão ser manipuladas se não tiverem um valor. alt. Nome = “Pedro Henrique”.  É permitido declarar e inicializar ao mesmo tempo uma variável. nome. Sexo = ´m`. as variáveis podem ser declaradas em qualquer ponto do programa desde que sigam o segundo critério.76. real de precisão dupla.  Segundo a filosofia Java. Resp = true. idade. Idade = 15. como a linguagem Kenya trabalha com tipos de dados. Alt = 1. isto é. sexo.  Só pode declarar uma variável por vez. caracter. elas poderão ser: booleanas. 9.  Como declarar uma variável Tipo int double char String boolean nome da variável.1 – Comando de atribuição Atribui um valor a uma variável.9 . inteira e strings.

A classe na linguage Kenya é um struc(C) ou Record(Pascal). A classe é declarada antes do main(). } Exemplo: Nome da classe: Pessoa Variáveis(Atributos): nome e período Classe Pessoa { String nome.Alguns exemplos de atribuições: cont = 0. Declarando uma classe: Classe nome da classe { declaração das variáveis. /* é somado 1 ao conteúdo de cont e o valor final volta a ser armazenado em cont */ 10 . } 12 . /* os valores de soma e num são somados e o resultado armazenado em soma */ Na linguagem Kenya é possível definir uma classe(registro ou estrutura em outras linguagens) para encapsular um grupo de variáveis que têm algo em comum (atributos de um objeto. /* soma o conteúdo de a com o conteúdo de b e armazena em x */ soma = soma + num. int periodo.Definições de Tipos pelo Usuário x = a + b. //atribui 0 à variável cont cont = cont + 1 . Diriam os programadores das linguagens orientadas a objetos).

aluno. usando o comando de atribuição: Nome da variável = nomefuncao() idade = readInt(). use o operador.nome = readString().As Funções de Entrada A linguagem Kenya disponibiliza quatro funções para entrada de dados (exceto para Boolean() via teclado de acordo com o tipo que está sendo esperado. Classe pessoa { String nome. readInt() entrada de dados para variável numérica tipo int readDouble() entrada de dados para variável numérica tipo double readString() entrada de dados para variável numérica tipo string readChar() entrada de dados para variável numérica tipo char 1. // sexo = read() nome = readString(). você estará habilitado para declarar Variáveis com este tipo.  Para acessar os campos das classes. alt = readDouble(). sexo = readChar(). } Void main() { Pessoa aluno.Após a variável ter sido declarado. aluno. Uma vez declarada a classe antes do main().periodo = readInt(). 13 . 11 . int periodo.

A solução seria usar a função: Read(). não deveremos usar a função readchar() se antes dela tiver havido qualquer tipo de entrada.Na declaração: Tipo Int Double Char String Exemplo 1: nome da variável = nomefuncao() idade = readInt(). isto é. se o teste resultar em uma verdade. 2 . pois ela retorna o caracter de retorno de carro e não funciona corretamente.Na entrada de dados do tipo char. o fluxo poderá seguir dois caminhos.. será executado o comando ou bloco de comandos que se encontra após o fecha 14 . um dos pontos importantes é capacidade do programa tomar uma decisão. só serão armazenados os caracteres que aparecem antes do primeiro espaço. else é uma estrutura de controle do Kenya muito fácil de ser usada. 12 – Comandos Condicionais Na programação.na entrada de dados do tipo String. Esta forma tende a ser mais usada.Observações: 1. pois sempre imprimimos alguma mensagem antes para ajudar o usuário. nome = readString().1 – Instrução if A estrutura if .. 12. Após o teste. 2. alt = readDouble(). sexo = readChar().

Se for false. executará só o bloco de else. Exemplo 1: Exemplo 2: 15 . Sintaxe do comando: if (expressão booleana ) { bloco de comandos. caso contrário.parênteses do teste. } Considerações:  A expressão booleana é formada por operandos e operadores relacionais e lógicos.  O valor de retorno é true ou false. estará. será executado o comando ou bloco de comandos que se encontra após o comando else. se existir. na maioria das vezes.  A expressão é avaliada e se o retorno for true então executará o bloco de comandos que se encontra logo abaixo e ignorará todo o bloco do else.  O comando else não precisa estar presente embora. } else { bloco de comandos.

As chaves devem estar sempre presentes. Exemplo 1: 12. faremos uso de encadeamento de ifs (também chamado de aninhamento. 12. o fluxo do programa poderá tomar vários rumos e.Note que há parênteses em volta da condição e. pois if está dentro de outro if.1 – Encadeamento de ifs Muitas vezes em nossos programas encontramos situações que dependendo do valor de uma variável. Esta solução atende a todos os tipos de variáveis e é necessário total domínio do seu uso.1. nestes casos. else if não é uma sintaxe válida em Kenya. ao contrário de Java.2 – Instrução switch 16 .

. ignorando todos os outros rótulos. após a avaliação da expressão e a execução do bloco correspondente.. Proporciona maior clareza ao programa. Execução: A expressão é avaliada e o fluxo desviado para o conjunto cujo rótulo é igual ao resultado da expressão. Considerações:  O comando break é necessário para a saída imediata do caso.  Mesmo que um caso não tenha nenhum comando. Por que usar break? Normalmente.  Você pode achar isto uma deficiência da estrutura. A sintaxe do comando: Switch (variável int ou char) { case op1 : { bloco de comandos.case. O uso do break forçará a saída do comando switch e a execução do próximo comando. em outras linguagens de programação. } case opn : { bloco de comandos.A estrutura switch . o fluxo do programa passa para a próxima instrução. mas na verdade pode ser vista também como uma vantagem como será mostrada nos exemplos abaixo. Na linguagem Kenya isto não acontece e poderá trazer sérias conseqüências em seus programas. pois diminui o número de ifs. break. o bloco do default é executado. O bloco abaixo do rótulo é executado. break. você precisa colocar o par de chaves. quando possível. O uso da instrução swith. break. Se o valor da expressão não for igual a nenhum rótulo. Você não é obrigado a colocar o rótulo do default. } case op2 : { bloco de comandos. 17 . também conhecida como alternativa de múltiplas escolhas. É uma estrutura que simplifica nossos programas no uso de decisão de múltiplos blocos quando a expressão de controle (a condição) envolve tipos int ou char. irá executar comandos dos outros blocos até achar break ou até final. Se ele não existir.

Em todas as estruturas estará presente pelo menos uma expressão para controlar a repetição. Step é palavra que antecede o valor do incremento da variável contadora. bloco de comando é um conjunto de instruções a ser executado. evitando que o programador tenha que repetir linhas idênticas só porque deseja que um trecho aconteça seguidamente várias vezes. }     valor final step valor inicial é uma expressão de inicialização da variável contadora.Exemplo 1: 13 – As Estruturas de Repetição A linguagem Kenya disponibiliza duas estruturas de repetição: for e while. A linguagem Kenya apresenta duas sintaxes para esta estrutura: uma parecida com Java e outra que é parecida com Pascal/Basic. while também possa ser usada. 18 . O controle do número de repetições é feito por uma variável chamada de variável contadora e só é interrompido quando a variável ultrapassa o valor limite. 13. È a estrutura mais indicada quando o número de repetições for conhecido embora.1 – A Estrutura do for A estrutura do for é a mais simples estrutura de repetição e é usada para repetir um ou vários comandos tantas vezes quanto desejamos. Sintaxe 1: mais simples e parecida com Pascal/Basic for nome da variável contadora = valor inicial to valor { bloco de comandos. Valor final é uma expressão que limita o valor da variável contadora.

int i. for i = 2 to 10 step 2 { println( i ). } Exemplo 1: Exemplo 3: A estrutura dor for apresenta a mesma filosofia de uma Progressão Aritmética(PA). } valor final step     decreasing é a palavra que informa que o valor do step é negativo. Step é palavra que antecede o valor do incremento da variável contadora. ou for decreasing nome da variável contadora = valor inicial to valor { bloco de comandos. for decreasing i = 10 to 2 { println( i ). o valor da razão (step valor) e o número de termos da série (número de repetições).int i. } int i. Valor final é uma expressão que limita o valor da variável contadora. o valor do último termo (valor final). aqui mantida em i. podem aumentar ou diminuir com o passo dado. } A contagem. 19 . pois temos o valor do primeiro termo (valor inicial). Se os passos não são especificados então ele é definido como sendo 1. for i = 1 to 10 { println( i ). bloco de comando é um conjunto de instruções a ser executado.

i = 10 . bloco de comandos é um conjunto de instruções a ser executado. i– ) { println( i ). }       inicialização é uma expressão que atribui um valor à variável. é permitido nesta sintaxe o uso dos operadores ++ e – a diferença desta sintaxe com a linguagem Java é que a variável só pode ser incrementada de 1 ou decrementada de 1. variável++ ou variável—incrementa ou decrementa de 1 a variável. int i. for ( i = 1 . condição . } Int i. somente ocorre uma vez.Exemplo 2: Sintaxe 2: parecida com Java for ( variável = inicialização . i++ ) { println( i ). variável++ ou variável -{ bloco de comandos. condição é uma expressão lógica de controle de repetição que envolve a variável. for ( i = 10. } 20 . i > 0 .

Logo. }  a condição é uma expressão relacional/lógica que controla a repetição.  a variável presente na condição precisa ter um valor atribuído ou lido para que a condição possa ser avaliada corretamente. while ( i <= 10 ) { println( i ). Ela testa primeiro a condição e poderá nem executar o bloco caso a condição seja falso. Muitos programadores fazem uso somente desta estrutura.  vamos observar como fica na prática o uso desta estrutura int i = 1. while(!=0) 21 . Sintaxe: while ( condição ) { bloco de comandos.2 – A Estrutura do while A estrutura while é uma estrutura “poderosa” da programação. a estrutura do while repete enquanto a condição for verdadeira. i = i + 1.Exemplo 1: 13.  a variável presente na condição precisa ter seu valor alterado antes de fechar a estrutura para que não entre em loop. } a=1 while(a< = 5) a=readInt().

A linguagem Kenya disponibiliza um indicador de fim de arquivo que se usado com while irá atender às nossas necessidades. isto é. } Exemplo 1: {println(a). a=a+1.{pintln(a). se foi pressionado EOF() ou false. caso contrário. isto é. Exemplo 1: 22 . a=readInt(). até quando não tivermos mais dados. } Exemplo 2: Observação: Quantas vezes temos problemas que pedem para lermos até o fim do arquivo. EOF() – retorna true se fim do arquivo foi achado.

atribuídos a uma variável.  O uso de funções evita que trechos com a mesma finalidade apareçam em vários locais do programa. isto é.1 – Considerações Função é um programa com atribuições específicas. tipo2 nome2) 23 . entre outras.2 – Protótipo de uma função Toda função tem um protótipo. 14 – Funções 14. informações sobre o tipo de retorno da função e tipos dos parâmetros. Declaração de uma função: Tipo Int. As funções através da passagem dos parâmetros e do seu nome permitem que sejam retornadas (ou não) valores à rotina chamadora e desta forma esses valores poderão ser impressos.3 – Chamada da Função Identificador Nome da função (lista de parâmetros) ( tipo1 nome1.  O programador poderá criar funções que atendam suas necessidades e com isto criar sua própria biblioteca. proporcionando menores chances de erro e de complexidade. doublé. As funções poderão ser localizadas antes ou depois da função principal (main()) na linguagem Kenya. diminuindo também o código fonte. podem servir em operações aritméticas. simplificando o entendimento do programa principal.Observação: Experimente entrar com nomes. Por que usamos funções:  Podemos dividir e estruturar um programa em partes logicamente coerentes. A linguagem Kenya permite o uso de funções. tornando sua programação mais eficiente uma vez que poderá fazer uso destas funções em outros programas com a vantagem de já terem sido testadas. 14. char.  O programa fica mais legível. void. modificar o valor passado.  Podemos testar os trechos em separados. String e boolean Exemplos:  int triplo( int d )  void ast()  void resul( char r )  boolean resul( char r )  String resul(char r ) 14.

Quando a função não retorna nada(nulo) usaremos o tipo void.Não devemos ficar preocupados com isso irá acontecer.. ordenar.4 – A Estrutura da Função Uma função é um bloco contendo início e fim. char.. seguem as mesmas regras de declaração de variáveis : declarações de variáveis da função (tipo e nome) : início da função : declaração de variáveis que serão utilizadas dentro da função (tipo e nome) 24 . Sintaxe da função: <tipo de função> nome da função (declaração dos parâmetros) { <declaração das variáveis> // se existirem comandos que formam o corpo da função return <valor>. ou não.... entre outras. da mesma forma. return .. < chamada da função triplo> . ou nada */ } tipo de função nome da função parâmetros Declaração dos parâmetros { Variáveis locais : tipo de dado que a função dará retorno. return . Ao terminar a execução dos comandos da função. Quando uma função é chamada. double.. Pode ser int. o fluxo de controle é desviado para a função. o fluxo de controle retorna ao comando seguinte aquele onde ela foi ativada. pelo qual será referenciada em qualquer parte e em qualquer momento do programa. } 14. } void main() { . Após executar estas tarefas menores. a função retorna.. pois é sugerido pelo comitê de padronoização ANSI. String.... podem ser declaradas variáveis. A função serve para executar tarefas menores. boolean ou void : segue as mesmas regras de declaração de variáveis : nome das variáveis. exatamente com na figura abaixo: int triplo(int d) { .. /* ou return.. no momento em que ela é ativada no programa principal. chamaremos as funções feitas por nós. sendo identificada por um nome.. pois já fizemos uso de várias funções internas (funções pré-definidas da linguagem Kenya) e. } int triplo(int d) { . um determinado valor para a função chamadora. Dentro da função.

Não pule etapas... Acredite nisto e invista. } void main() { .... Faça todas as listas logo após o conteúdo ter sido aprendido... funcao2(. } .Corpo da função Return.. mas elas poderão ser colocadas depois da função principal (main). mas é importante que você pratique muito e solte sua imaginação para criar suas próprias funções..... } Apresentaremos vários exemplos para o uso de funções em nossos programas.5 Localização da Função Nós adotaremos antes da função principal..funcao3 (. mas muito gratificante.. A programação é uma atividade solitária... . 25 .. Exemplo 1: Função que não retorna nada e não tem parâmetros.) { . funcao1 { .) { .... } . } : seqüência de comandos : o que vai ser retornado para o programa ou não existe : fim da execução 14..

26 .Exemplo 2: Função que não retorna nada e tem parâmetro Exemplo 3: Função que não retorna nada e tem dois parâmetros Exemplo 4: Função que retorna o último algarismo de um número.

27 .

Exemplo 5: Programa com Menu e funções 28 .

seguido do par de colchetes com o tamanho do vetor 15. a array não é um ponteiro como em algumas linguagens.][.][.. pois lhe faltava conhecer a estrutura da matriz. Uma matriz(array) é um arranjo de elementos armazenados na MP todos com o mesmo nome.double [ ][ ] mat = new mat[4][4]. double. embora não sela orientada a objetos. String ou boolean [ ]: nada entre colchetes nomeDaMatriz: obedecendo às mesmas regras das variáveis simples new: construtor tipo[. 15.1 – Considerações Apesar de você ter feito uso de estruturas de repetição que lhe permitiram a entrada de vários dados. Seguindo a filosofia Java. ou seja linha ou coluna)..15 . precisaremos fazer de um comando (a linguagem Java chama de construtor) chamado new para criar array.. Exemplos: 1. //cria uma matriz de 4linhas(0-3) e 4 colunas(0-3) 29 . char.. char.1 – Criando uma matriz de uma dimensão (vetor) Tipo [ ] nomeDaMatriz = new tipo[..2. é um subconjunto da linguagem Java. double.]: o mesmo tipo colocado no lado esquerdo da declaração. ]. desta forma você não poderá indexar fora da faixa e nem declarar um array com tamanho pré-definido como em outras linguagens. String ou boolean [ ]: nada entre colchetes nomeDaMatriz: obedecendo às mesmas regras das variáveis simples new: construtor tipo[ ]: o mesmo tipo colocado no lado esquerdo da declaração.] Tipo: int.. Vários são os caminhos para declarar matrizes na linguagem Kenya..int [ ] idade = new int[10].. são mais seguros..Array 15. mas lembrese de que o primeiro elemento da matriz sempre começará por 0 (zero. //cria um vetor de 10 elementos indexados de 0 até 9 2.. ainda não foi possível o armazenamento de todos estes dados. seguido de dois pares de colchetes com o número de linhas e o número de colunas. Tipo: int.2.2 – Criando uma matriz de uma dimensão(vetor) Tipo [ ] nomeDaMatriz = new tipo[. Como a linguagem Kenya.

. Poderá ter: estrutura de teste. deverá ter o valor final igual a última posição do vetor.. L++ { print(. 15. o nomeDovetor[L]. deverá ter uma variável que será incrementada e nunca poderá assumir um valor maior do que a última posição do vetor.  TRECHO DE SAÍDA ⇒ normalmente.3 –Armazenando e lendo – matriz de uma dimensão (vetor)  TRECHO DE ENTRADA DE DADOS ⇒ normalmente. uma ESTRUTURA DE REPETIÇÃO ⇒ se for a estrutura do for. 30 ..Imagine assim: 0 1 2 3 4 5 6 7 8 9 0 0 1 2 3 1 2 3 Um programa com matrizes implica em vários trechos para que possa funcionar corretamente. etc. uma ESTRUTURA DE REPETIÇÃO ⇒ se for a estrutura do for.. deverá ter o valor final igual a última posição do vetor. ⇒ Se for a estrutura do while. nomeDoVetor[L] = read. ⇒ Se for a estrutura do while. atribuição. L < número de elementos.. Nunca deverá ter um comando print ( ou println) tendo como argumento. outro for. deverá ter uma variável que será incrementada e nunca poderá assumir um valor maior do que a última posição do vetor.). Estes trechos são independentes. } O trecho acima poderá ser incrementado com outros comandos. for(L=0.

. outro for. for(L=0. ⇒ nunca deverá ter um comando read.. Exemplo 1: Exemplo 2: 31 . atribuição. } ⇒ o trecho acima poderá ser incrementado de outros comandos. ⇒ poderá ter: estrutura de teste.println(“\n\nTITULO\n”). tendo como argumento o nomeDoVetor [L]. etc. <número de elementos. L++ { println(nomeDoVetor [L].

Exemplo 3: 32 . } } } Observação: Se precisamos ordenar um vetor e se tivermos outros vetores dependentes dele. Quando se têm dados para mais de um vetor que não têm nada em comum. Isto é. Quando for necessário. C++) { if (nomeDaMatriz[L] = nomeDaMatriz [C]. for (L=0. troque de lugar. L <totalDeElementos – 1. 15. { aux = nomeDaMatriz [L] nomeDaMatriz [L] = nomeDaMatriz [C] nomeDaMatriz [C] = aux. precisaremos fazer vários trechos de troca. L++) { for( C = L + 1. Repita esta operação até que tenha feito todas as comparações. repetir o trecho que se encontra no retângulo mais interno. os trechos de entrada são separados? DEVEM SER (exemplo 2).Quando se têm dados para mais de um vetor relativos a um objeto. fazendo uso da variável aux. c <totalDeElementos.4 – Trecho de Ordenação ⇒ Compare o elemento que está na 1ª posição com todos os seguintes a ele. os trechos de entrada são separados? NÃO DEVEM SER (exemplo1).

a saída deverá ser sempre linha... ⇒ se for a estrutura do while. L++) { for (C=0.15. a última posição-coluna da matriz (entrada por linha). outro for. C++) { print(. for ( L=0. C < número de linhas.. l < número de linhas.} }  ⇒ trocando no trecho acima as posições dos for. atribuição.). ⇒ devido às limitações da linguagem. tendo como argumento o nomeDaMatriz[L][C]. as colunas. ⇒ poderá ter: estrutura de teste.. ⇒ nunca deverá ter um comando read. deverá ter duas variáveis: uma para controlar as linhas e a outra. C++) { print( nomeDaMatriz [ L ] [ C ] + “\t”). o primeiro terá o valor igual a última posição – linha da matriz e o segundo. atribuição.. ⇒ se for a estrutura do while. TRECHO DE SAÍDA ⇒ normalmente. L < número de linhas. duas ESTRUTURAS DE REPETIÇÃO ⇒ se for estrutura do for. ⇒ Poderá ter: estrutura teste. etc. duas ESTRUTURAS DE REPETIÇÃO ⇒ se for estrutura do for. a entrada será por coluna. etc. o nomeDaMatriz[ L ] [ C ]. ⇒ O trecho acima poderá ser incrementado com outros comandos. deverá ter duas variáveis: uma para controlar as linhas e a outra. C < número de linhas. L++) { for(C=0. Exemplo 1: 33 . ⇒ Nunca deverá ter um comando print( ou println ) tendo como argumento.. a última posição-coluna da matriz (entrada por linha).. }  ⇒ o trecho poderá ser incrementado de outros comandos. nome DaMatriz [L] [C] = read.5 – Armazenando e lendo matriz de duas dimensões TRECHO DE ENTRADA DE DADOS ⇒ normalmente. o primeiro terá o valor igual a última posição – linha da matriz e o segundo. as colunas. for(L=0. outro for.. } println( “” ).

Exemplo 2: 34 .

Lista de exercícios 35 .

Guia do usuário da Linguagem Kenya. CHATLEY.BIBLIOGRAFIA 1. R. CHATLEY. R. Internet. 36 . Tese Internet. 2.