Sei sulla pagina 1di 2

Instituto Superior de Engenharia de Lisboa - ADEETC

Programao
Semestre Inverno 2013/14
4.a Ficha 20/Dez/2013 Durao: 1 h VERSO A
Na folha de resposta indique a verso da sua ficha. Justifique todas as respostas.
1. 5:0 Considere a implementao recursiva do mtodo calc.
public static int calc ( int a , int b ) {
return ( b == 0) ? a : calc (b , a % b ) ;
}

(a) 2:5 Indique o valor de retorno da chamada calc(20, 12).


(b) 2:5 Faa uma implementao no recursiva do mtodo calc() que tenha o mesmo objetivo, admitindo que
os parmetros so valores inteiros positivos, usando o mnimo de ciclos repetitivos.
2. 15:0 Considere a classe MyString estudada nas aulas.
class MyString {
private char [] value ;
private int count ;
private void copy ( char [] seq ) {
for ( int i = 0; i < seq . length ; ++ i )
this . value [ i ] = seq [ i ];
}
public MyString ( char [] sequence ) {
this . count = sequence . length ;
this . value = new char [ count ];
this . copy ( sequence ) ;
}
public char charAt ( int i ) { return this .
value [ i ]; }
public int length () { return this . count ;}
public String toString () { ... }
public int indexOf ( int ch ) {
// A implementar
}
public int indexOf ( MyString str ) {
// A implementar
}
public MyString concat ( MyString str ) {
// A implementar
}
}

String str1 = " Ola bom dia , " ;


char [] arr1 = str1 . toCharArray () ;
MyString mystring1 = new MyString ( arr1 ) ;
System . out . println ( mystring1 . toString () ) ;
String str2 = " hoje e ' dia de ficha " ;
char [] arr2 = str2 . toCharArray () ;
MyString mystring2 = new MyString ( arr2 ) ;
System . out . println ( mystring2 . toString () ) ;
// Concatena as duas strings , deixando
inalteradas mystring1 e mystring2
MyString mystring3 = mystring1 . concat (
mystring2 ) ;
System . out . println ( mystring3 . toString () ) ;
System . out . println ( " Length = " + mystring3 .
length () ) ;
// Index of
System . out . println ( mystring3 . indexOf ( 'i ') ) ;
-----------------------------------------OUTPUT :
Ola bom dia ,
hoje e ' dia de ficha
Ola bom dia , hoje e ' dia de ficha
Length = 33
9

Notas:
 O mtodo indexOf retorna o ndice da primeira ocorrncia do carcter (ou string) na string this, ou -1 caso
no encontre.
 O mtodo concat concatena a string especificada com a string this produzindo uma nova string.

Instituto Superior de Engenharia de Lisboa - ADEETC

Programao
Semestre Inverno 2013/14
4.a Ficha 20/Dez/2013 Durao: 1 h VERSO B
Na folha de resposta indique a verso da sua ficha. Justifique todas as respostas.
1. 5:0 Considere a implementao recursiva do mtodo calc.
public static int calc ( int n ) {
return ( n == 0) ? n : calc (n -1) + 2* n - 1;
}

(a) 2:5 Indique o valor de retorno da chamada calc(5).


(b) 2:5 Faa uma implementao no recursiva do mtodo calc() que tenha o mesmo objetivo, admitindo que
os parmetros so valores inteiros positivos, usando o mnimo de ciclos repetitivos.
2. 15:0 Considere a classe MyString estudada nas aulas.
class MyString {
private char [] value ;
private int count ;
private void copy ( char [] seq ) {
for ( int i = 0; i < seq . length ; ++ i )
this . value [ i ] = seq [ i ];
}
public MyString ( char [] sequence ) {
this . count = sequence . length ;
this . value = new char [ count ];
this . copy ( sequence ) ;
}
public char charAt ( int i ) { return this .
value [ i ]; }
public int length () { return this . count ;
}
public String toString () { ... }
public int lastIndexOf ( int ch ) {
// A implementar
}
public MyString concat ( MyString str ) {
// A implementar
}
public MyString [] split () {
// A implementar
}
}

String str1 = " Ola bom dia , " ;


char [] arr1 = str1 . toCharArray () ;
MyString mystring1 = new MyString ( arr1 ) ;
System . out . println ( mystring1 . toString () ) ;
String str2 = " hoje e ' dia de ficha " ;
char [] arr2 = str2 . toCharArray () ;
MyString mystring2 = new MyString ( arr2 ) ;
System . out . println ( mystring2 . toString () ) ;
// Concatena as duas strings , deixando
inalteradas mystring1 e mystring2
MyString mystring3 = mystring1 . concat (
mystring2 ) ;
System . out . println ( mystring3 . toString () ) ;
System . out . println ( " Length = " + mystring3 .
length () ) ;
// Last index of
System . out . println ( mystring3 . lastIndexOf ( 'i
') ) ;
-----------------------------------------OUTPUT :
Ola bom dia ,
hoje e ' dia de ficha
Ola bom dia , hoje e ' dia de ficha
Length = 33
29

Notas:
 O mtodo lastIndexOf retorna o ndice da ltima ocorrncia do carcter na string this, ou -1 caso no
encontre.
 O mtodo concat concatena a string especificada com a string this produzindo uma nova string.
 O mtodo split retorna um array de objectos MyString contendo cada uma das palavras.

Potrebbero piacerti anche