1 - Qual o valor hexadecimal da variável a
após a execução do seguinte código
C#? E o valor em decimal? Justifica a tua resposta.
uint a = 0xFEDE;
a &= 0x0F0F;
2 - Qual o valor hexadecimal da variável a
após a execução do seguinte código
C#? E o valor em binário? Justifica a tua resposta.
ulong a = 0xFEDE;
a |= 0x0F0F;
3 - Qual o valor hexadecimal da variável a
após a execução do seguinte código
C#? E o valor em decimal? Justifica a tua resposta.
byte a = 0b1011_1100;
a ^= 0x0F;
4 - Indica o que é mostrado no ecrã pelo seguinte código C#. Justifica a tua resposta.
uint n = uint.MaxValue;
Console.WriteLine(n + 1);
5 - Indica o que é mostrado no ecrã pelo seguinte código C#. Justifica a tua resposta.
int n = -1;
Console.WriteLine(~n);
6 - Indica o que é mostrado no ecrã pelo seguinte código C#. Justifica a tua resposta.
ulong a = 0xABCD;
Console.WriteLine($"{a & 0x000F}");
7 - Indica o que é mostrado no ecrã pelo seguinte código C#. Justifica a tua resposta.
short s = 5 / 2;
Console.WriteLine($"*\t{s}\t*");
8 - Indica o que é mostrado no ecrã pelo seguinte código C#. Justifica a tua resposta.
double x = 3.1223;
Console.WriteLine(@"\\{x}\\:" + x);
9 - Indica o que é mostrado no ecrã pelo seguinte código C#. Justifica a tua resposta.
char c = '\u00AE';
Console.WriteLine($@"\n{c}\n");
10 - Escreve um programa que solicite ao utilizador uma string e a volte a mostrar no ecrã.
11 - Escreve um programa que solicite ao utilizador uma string e a volte a mostrar no ecrã de forma invertida (isto é, de trás para a frente).
12 - Escreve um programa que solicite ao utilizador dois números inteiros e apresente a sua soma.
13 - Escreve um programa que solicite ao utilizador dois números reais de 64
bits e apresente o resultado do primeiro (base) elevado ao segundo (expoente).
Sugestão: o método
Math.Pow(x, y)
realiza a operação de potenciação xy.
14 - Escreve um programa que solicite ao utilizador o comprimento, altura e largura de um paralelepípedo retângulo, e apresente de seguida o seu volume.
15 - Escreve um programa que mostre no ecrã todos os argumentos passados na linha de comandos.
16 - Escreve um programa que solicite ao utilizador três números inteiros e
apresente no ecrã a frase É possível :)
se for possível adicionar dois dos
números para obter o terceiro, ou a frase Impossível :(
em caso contrário.
Por exemplo, se o utilizador inserir os números 5, 2 e 3 o programa deve
mostrar a frase É possível :)
pois é possível somar 2 + 3 para obter 5.
17 - Escreve um programa que solicite ao utilizador um número inteiro e imprima
o número seguido de um ponto de exclamação. Por exemplo, ao ler o número sete,
vai mostrar no ecrã 7!
. No entanto, se o número for divisível por 3 vai
mostrar "Fizz!", se for divisível por 5 vai mostrar Buzz!
, e se for
divisível por 3 e por 5 mostra FizzBuzz!
Sugestão: o operador %
permite
obter o resto da divisão para calcular se dado número é divisível.
18 - Escreve um programa que solicite ao utilizador uma frase. Se a respetiva
string tiver mais de 20 caracteres, o programa deve mostrar no ecrã Too long to read
. Se a string tiver entre 5 a 20 caracteres, deve mostrar no ecrã
Ok, if you say so.
. Se a string tiver menos de 5 caracteres, o programa
deve mostrar no ecrã That's not very meaningful, is it?
.
19 - Escreve um programa que solicite ao utilizador dois números reais: o
primeiro deve representar o high score atual num jogo, e o segundo deve
representar o score que o jogador acabou de conseguir. Se o score do
jogador for superior ao high score, o programa deve mostrar a mensagem
New high score!
, caso contrário deve mostrar Keep trying
. Usa o operador
ternário para implementar o programa.
20 - Indica exatamente o que é mostrado no ecrã pelo seguinte código C#, incluindo espaços. Justifica a tua resposta.
double d = 0.3513;
float f = 12.645f;
Console.WriteLine("d -> {0,5:f2}", d);
Console.WriteLine("f -> {0,5:f2}", f);
21 - Indica exatamente o que é mostrado no ecrã pelo seguinte código C#, incluindo espaços. Justifica a tua resposta.
double x = 0.1592;
double y = 1.1231;
Console.WriteLine($"x igual a {x,6:p1}");
Console.WriteLine($"y igual a {y,6:p1}");
22 - Indica exatamente o que é mostrado no ecrã pelo seguinte código C#, incluindo espaços. Justifica a tua resposta.
int a = 10;
int b = 100;
int c = 1000;
string s1 = String.Format("{0,4}", a);
string s2 = String.Format("{0,4}", b);
string s3 = String.Format("{0,4}", c);
Console.WriteLine(s1 + "\n" + s2 + "\n" + s3);
23 - Escreve um programa que sirva como calculadora de linha de comandos,
aceitando três argumentos: 1) a operação a realizar; 2) o primeiro operando; e,
3) o segundo operando. A calculadora deve reconhecer as seguintes operações
indicadas no primeiro argumento: +
, -
, /
, x
e p
(sendo que última
representa a operação de potenciação). A calculadora deve realizar a operação
entre os dois operandos (que se podem assumir como doubles
), mostrar o
resultado e terminar a execução. Se não forem indicados três argumentos, ou se
a operação não for conhecida, o programa deve terminar com uma mensagem de erro
apropriada.
Exemplo de execução: dotnet run -- + 3.2 5
, que deverá mostrar 8.2
.
24 - Implementa o programa anterior de forma interativa e em ciclo. O programa
deve solicitar a operação e os dois argumentos ao utilizador, apresentar a
o resultado e voltar a fazer novo pedido de operação. O programa deve terminar
apenas quando o utilizador escrever END
em qualquer uma das solicitações.
Se o programa não reconhecer a operação, deve voltar a pedir a mesma ao
utilizador. Ao terminar, o programa deve indicar ainda quantas operações
realizou.
Pontos extra: Como detetar e recuperar de um valor que não seja possível
converter para double
?
25 - Reescreve o seguinte código sem usar breaks
e continues
.
const int maxTurns = 20;
int turn = 0;
while (true)
{
turn++;
if (turn >= maxTurns)
{
break;
}
if (turn % 3 == 0)
{
continue;
}
Console.WriteLine($"Turn number {turn}");
}
Console.WriteLine($"Last turn was {turn}");
26 - Implementa um jogo turn-based, com o número máximo de turns dado como
argumento na linha de comando. O jogo deve decorrer enquanto o jogador estiver
vivo e enquanto o número máximo de turns não tiver sido atingido. Em cada
turn o jogador tem uma probabilidade de morrer de 2%. Se o jogador não morrer
numa dada turn, deve ser apresentada a mensagem Player has survived turn #3
(substituir 3 pela pela turn atual). Caso contrário, deve ser apresentada a
mensagem Player died after 10 turns
(substituir 10 pela turn em que o
jogador efetivamente morreu).
Nota 1: O "jogo" não é interativo, simplesmente apresenta uma mensagem por turn.
Nota 2: Podem ser obtidos números aleatórios entre 0 e 1 usando o método NextDouble da classe Random (namespace System) da seguinte forma:
// Criar objeto do tipo Random
Random rng = new Random();
// Obter double entre 0 e 1
double probability = rng.NextDouble();
27 - Escreve um programa que solicite um número de linhas ao utilizador e imprima um losango com números indicando o número da linha do losango. Por exemplo, se o utilizador inserir o número 4, deve ser impresso o seguinte losango:
1
222
33333
4444444
33333
222
1
Se o utilizador inserir um valor superior a 9 o programa deve terminar com uma mensagem de erro.
28 - Escreve um programa que aceite dois ou mais números inteiros como
parâmetros na linha de comandos, coloque esses números num array de ints
e
apresente ao utilizador um menu com as seguintes opções:
- Obter média dos valores no array
- Obter mediana dos valores no array
- Obter moda dos valores no array
- Obter máximo dos valores no array
- Obter mínimo dos valores no_array
- Sair
O programa deve funcionar em ciclo, realizando os pedidos efetuados, terminando apenas quando o utilizador selecionar a opção 6.
29 - Escreve um programa que solicite ao utilizador um número de frases, e depois peça ao utilizador para inserir cada uma das frases individualmente. Cada frase deve ser dividida nas palavras que a compõem (removendo espaços e pontuação), sendo as respetivas palavras guardadas num array de strings. Por sua vez, cada array de strings deve ser guardado num array de arrays. Depois, o programa deve percorrer o array de arrays, e para cada array de strings indicar quantas palavras existem na respetiva frase, e qual a maior palavra.
Nota 1: O método
Split()
dos objectos do tipo string
devolve substrings da string original
separadas pelos caracteres passados ao método sob a forma de array de
chars
. Por exemplo:
string s = "A string with several words";
char[] separators = new char[] { ' ', ',', '.', ':', '\t' };
string[] arrayOfStrings = s.Split(separators);
Nota 2: Deve ser usada a keyword foreach
sempre que possível.
Exemplo de execução:
Numero de frases: 3
Frase 1: Ola Mundo
Frase 2: Uma frase mais comprida.
Frase 3: Esta e a ultima frase
Frase 1:
Numero de palavras: 2
Maior palavra: "Mundo"
Frase 2:
Numero de palavras: 4
Maior palavra: "comprida"
Frase 3:
Numero de palavras: 5
Maior palavra: "ultima"
30 - Cria um jogo tile-based e turn-based no qual o jogador se move numa
grelha 2D (não-toroidal, ou seja, com paredes nos limites do mundo). O jogador
apenas se move para cima, para baixo e para os lados, usando as teclas WSAD. A
tecla Q indica que o jogo terminou. A grelha deve ser representada como um
array bidimensional, e após cada turn o mundo de jogo deve ser mostrado no
ecrã, com o jogador representado por uma arroba (@
) e os espaços vazios
representados por um ponto (.
).
31 - Escreve um programa que realize a multiplicação entre uma matriz n x m e um vetor m x 1. O programa deve começar por solicitar as dimensões n e m, pedindo depois ao utilizador que preencha os valores da matriz e do vetor a multiplicar, e finalmente mostrando o resultado final na forma de um vetor n x 1.
Nota 1: Este exercício deve ser resolvido com recurso a arrays multidimensionais.
Nota 2: A resolução deste exercício depende da matéria de multiplicação de matrizes (disciplina de Introdução à Matemática e Física para Jogos I).
Nota 3: Podes experimentar multiplicar uma matriz por um vetor online em http://matrix.reshish.com/multiplication.php.
32 - Indica o que é mostrado no ecrã pelo seguinte código C#. Justifica a tua resposta.
byte b = byte.MaxValue - 1;
for (int i = 0; i < 5; i++)
{
Console.WriteLine($"Iteração {i}: {(byte) (++b - 1)}");
}
33 - Indica o que é mostrado no ecrã pelo seguinte código C#. Justifica a tua resposta.
int[] someInts = { 11, 8, 6, 3, 9, 104 };
foreach (int v in someInts)
{
if (v % 2 == 0)
{
Console.WriteLine("{0,3}", v);
}
}
34 - Indica o que é mostrado no ecrã pelo seguinte código C#. Justifica a tua resposta.
int n = 0;
string[] frases = {
"Curta",
"Uma frase longa",
"Small",
"Very large sentence",
"Petit",
"How many words do I have?"
};
foreach (string s in frases)
{
if (s.Length > 6)
{
n++;
}
}
Console.WriteLine(n);
35 - Escreve um programa em C# que solicite ao utilizador dois números inteiros sem sinal, e apresente, em hexadecimal, o resultado da operação AND bit a bit do primeiro pela negação bit a bit do segundo.
36 - Escreve um programa que: 1) liste todas as classes num jogo RPG; 2) solicite ao utilizador uma das classes (através do valor numérico do respetivo membro da enumeração); e, 3) mostre uma descrição textual sobre essa classe. As classes existentes neste jogo, e as respetivas descrições, são:
- Warrior: Melee hack-and-slash class.
- Knight: Heavy armor class.
- Barbarian: Big guy with an equally big weapon.
- Monk: Melee class that forgoes weapons for their powerful fists.
- Archer: Ranged class with bows or guns.
- Thief: Sneaky bandit with itchy fingers and a nose for treasure.
- Priest: Class who makes sure the party survives an encounter.
- Mage: Class with spells to burn, freeze or electrify.
- Druid: Class capable of summoning minions.
Referência: https://www.giantbomb.com/classes/3015-405/
Nota: Usar switch
para selecionar a descrição a mostrar.
37 - Escreve um programa que crie aleatoriamente um mundo de jogo tile-based
2D e o mostre no ecrã. O tamanho do mundo, x
e y
, deve ser indicado sob a
forma de argumentos na linha de comandos. Cada célula (quadrado ou posição) do
mundo de jogo pode ter, cumulativamente e com a probabilidade indicada, os
seguintes items:
- Comida - 1,0%
- Armas - 0,5%
- Inimigo - 0,5%
- Armadilha - 0,3%
Os items devem ser representados com enumerable flags (opções enumeráveis),
assim como as suas combinações. Espaços vazios devem ser representados com um
espaço, e as várias combinações de items devem ser representados com o caracter
ASCII obtido pela soma do valor ASCII do espaço (0x20) com o valor numérico do
item ou combinação de items enumerados. Por exemplo, a comida é representada
com o carácter !
(ASCII 0x21), e a combinação de inimigo e armadilha é
representada com o carácter ,
(ASCII 0x2C).
Nota 1: A tabela ASCII pode ser consultada aqui.
Nota 2: Pode facilitar a resolução do problema fazer debugging imprimindo
no ecrã os conteúdos detalhados de cada posição do mundo de jogo, por exemplo
para a posição (5,3) pode ser impresso (5,3) contem 'Comida, Inimigo', caráter %
.
Nota 3: Podem ser obtidos números aleatórios entre 0 e 1 usando o método NextDouble da classe Random (namespace System) da seguinte forma:
// Criar objecto do tipo Random
Random rng = new Random();
// Obter double entre 0 e 1
double probability = rng.NextDouble();
38 - Considera o seguinte método Main()
:
static void Main(string[] args)
{
// Declaração de variáveis
int n;
int[] numbers;
// Pedir ao utilizador o tamanho do array de inteiros
Console.Write("Qual o tamanho do array?");
n = Convert.ToInt32(Console.ReadLine());
// Gerar números de 1 até n
numbers = CreateNumbersToN(n);
// Inverter os conteúdos do array
Reverse(numbers);
// Imprimir os conteúdos do array
PrintNumbers(numbers);
}
Implementa, dentro da classe Program
, os métodos CreateNumbersToN()
,
Reverse()
e PrintNumbers()
de modo a que façam o que está indicado nos
respetivos comentários no método Main()
.
39 - Considera a seguinte declaração do método Next (classe Random, namespace System):
public virtual int Next(int minValue, int maxValue);
Indica:
- O nome do método.
- O tipo devolvido pelo método.
- Os argumentos aceites pelo método.
- A assinatura do método.
- Outras características indicadas na declaração.
- Se existe algum overloading deste método na classe Random, e em caso afirmativo, mostrar as respetivas declarações.
40 - Escreve documentação em formato XML para o método RockPaperScissors
apresentado em baixo, seguindo as melhores práticas para o efeito. Os valores
ROCK
, PAPER
e SCISSORS
devem ser considerados como constantes inteiras.
static int RockPaperScissors(int player1, int player2)
{
if (player1 == player2)
{
return 0; // Draw
}
if (((player1 == ROCK) && (player2 == SCISSORS)) ||
((player1 == SCISSORS) && (player2 == PAPER)) ||
((player1 == PAPER) && (player2 == ROCK)))
{
return 1; // Player 1 wins
}
else
{
return 2; // Player 2 wins
}
}
41 - 1) Reescreve o método RockPaperScissors
de modo a que siga as melhores
práticas de legibilidade de código, nomeadamente que tenha apenas um único
return
no fim. 2) Escreve um método Main
para testar o método
RockPaperScissors
, nomeadamente pedindo ao jogador um para selecionar uma
opção (ROCK
, PAPER
ou SCISSORS
), ao jogador dois para fazer o mesmo, e
apresentando depois o resultado do jogo. 3) Integra os métodos Main
e
RockPaperScissors
numa classe chamada RPSGame
, namespace LP1Exercises
.
42 - Melhora a legibilidade do código do exercício anterior criando duas
enumerações, uma para indicar o resultado do jogo, outra para definir as
possíveis jogadas. Mostra o código completo das enumerações criadas e da classe
RPSGame
, todas dentro do namespace LP1Exercises
.
43 - Considera as seguintes enumerações:
enum Terrain
{
Rock = 0,
Plains,
Forest,
Jungle
}
enum BonusTerrain
{
Water = 1,
Food
}
Escreve dois métodos overloaded chamados Eat()
, um que aceite um Terrain
e devolva o valor numérico do respetivo membro da enumeração Terrain
, e outro
que aceite um BonusTerrain
e devolva o valor numérico do respetivo membro da
enumeração BonusTerrain
multiplicado por 10. Coloca os 2 métodos como
static
numa classe chamada Grazer
(namespace LP1Exercises
), e escreve
um método Main
para testar os métodos que criaste.
44 - Considera o método Recursao()
:
static int Recursao(int n1) {
int n2;
if (Math.Abs(n1) > 1000) {
n2 = n1;
} else {
n2 = Recursao(-n1 * 10);
}
return n2;
}
Considera a seguinte invocação do método Recursao()
:
int n0 = Recursao(5);
Qual é o valor da variável n0
após a linha de código anterior? Explica o teu
raciocínio.
Nota 1: O método Abs da classe Math (namespace System) devolve o valor absoluto (módulo) do valor passado como argumento.
45 - Temos um triângulo feito de blocos. A primeira linha do triângulo tem 1
bloco, a segunda linha tem 2 blocos, a terceira linha tem 3 blocos, e por ai
fora. Completa o método Triang
, que, dado o número de linhas, determina
recursivamente (sem ciclos ou multiplicações) o número total de blocos num
triângulo deste tipo. Por exemplo, ao receber o valor 4, o método retorna o
valor 10 correspondente ao número de blocos, como indicado em baixo:
*
- 1 bloco**
- 2 blocos***
- 3 blocos****
- 4 blocos
Método devolve 10, pois existem 10 blocos (asteriscos) ao todo.
De modo a testares o método, cria posteriormente um programa que solicite um
número inteiro ao utilizador, invoque o método Triang
e imprima no ecrã o
número devolvido.
static int Triang(int linhas)
{
// Completar este método
}
Sugerido por João Duarte, adaptado de http://codingbat.com/prob/p194781.
46 - Indica o que é impresso no ecrã pelo seguinte código. Justifica a tua resposta.
static void Main(string[] args)
{
Console.WriteLine(MetodoRecursivo(5));
}
static int MetodoRecursivo(int n)
{
if (n == 0)
return 0;
else if (n % 2 == 0)
return 3 + MetodoRecursivo(n - 1);
else
return 2 + MetodoRecursivo(n - 1);
}
47 - Indica o que é impresso no ecrã pelo seguinte código. Justifica a tua
resposta, explicando detalhadamente em que consiste a operação efetuada pelo
método Fact()
.
static void Main(string[] args)
{
uint n = 5;
Console.WriteLine($"{n}! = {Fact(n)}");
}
static uint Fact(uint i) => i > 1 ? i * Fact(i - 1) : 1;
48 - Indica o que é impresso no ecrã pelo seguinte código. Justifica a tua
resposta, explicando em que consiste a operação efetuada pelo método GCD()
.
static void Main(string[] args)
{
ulong a = Convert.ToUInt64(args[0]);
ulong b = Convert.ToUInt64(args[1]);
Console.WriteLine($"GCD between {a} and {b} is {GCD(a, b)}");
}
static ulong GCD(ulong a, ulong b) => b == 0 ? a : GCD(b, a % b);
49 - A stack é composta por frames. Cada frame está associada a que unidade de código? Que informação é contida em cada frame?
50 - Que tipos de dados podem ser guardados na heap? E que tipos de dados só podem ser guardados na heap?
51 - Indica duas responsabilidades do garbage collector.
52 - É possível, com o C#, aceder à heap sem gestão automática da memória (isto é, sem intervenção do garbage collector)? Se sim, como?
53 - Quais as duas grandes famílias de tipos no C#, e quais as principais diferenças entre elas? Existe ainda uma terceira família, muito menos usada. Indica qual é.
54 - Qual é o valor da variável x
após as seguintes instruções.
double x = 11.09;
AddOne(x);
55 - Indica os conteúdos do array devolvido pelo método Process()
.
bool[] Process()
{
bool[] a;
a = new bool[] { true, true, false, true };
MisteryOp(a);
return a;
}
void MisteryOp(bool[] zz)
{
for (int i = 0; i < zz.Length; i++)
{
zz[i] = !zz[i];
}
}
56 - Indica os conteúdos do array devolvido pelo método Process()
.
char[] Process()
{
char[] a;
a = new char[] { 'a', 'b', 'c' };
MisteryOp(a);
return a;
}
void MisteryOp(char[] a)
{
a = new char[] { a[2], a[1], a[0] };
}
57 - Indica os conteúdos do array devolvido pelo método Process()
.
char[] Process()
{
char[] a;
a = new char[] { 'a', 'b', 'c' };
MisteryOp(ref a);
return a;
}
void MisteryOp(ref char[] a)
{
a = new char[] { a[2], a[1], a[0] };
}
58 - Recebeste uma tarefa para implementar uma função que deteta as classes de um jogo MMORPG que irá ser utilizado para o sistema de “Party Search”. Este MMO tem cerca de 6 classes que incluí: Fighter, Cleric, Druid, Barbarian, Rogue e Wizard. No entanto é preciso ter em conta que este jogo permite ao jogador fazer “multi-class”, ou seja, pode criar personagens que tenham até 3 classes distintas num só personagem (e.g. Druid; Figher + Rogue; ou Cleric + Barbarian + Wizard).
A tua tarefa é implementar o sistema mais eficiente para detetar a classe (ou classes) do personagem do jogador usando exclusivamente operações bit-a-bit - **CheckClass() Para testar o vosso método implementa uma função ReturnRandomClass que retorna uma a tres classes (podes também pensar como implementar este método com bitwise).
You received a task to implement a function capable of detecting classes from an MMORPG hame which will be used for the new "Party Search" Function. This MMO has about 6 classes which includes: Fighter, Cleric, Druid, Barbarian, Rogue and Wizard. However, this game allows players to use a "multi-class" system of up to 3 classes, meaning that players can mix and match of a total of 3 classes (e.g. Druid; Figher + Rogue; ou Cleric + Barbarian + Wizard).
Your task is to implement an efficient system capable of detecting a class (or classes) of a character using exclusively bitwise operations - CheckClass.
const int Fighter = 1;
const int Cleric = 2;
const int Druid = 4;
const int Barbarian = 8;
const int Rogue = 16;
const int Wizard = 32;
public static void CheckClass() { /* Implement */ }
public static int ReturnRandomClass() { /* Implement */ }
Output Example:
- "-Fighter-"
- "-Clearic--Druid--"
- "-Cleric--Barbarian--Wizard-"
59 - Utilizando o código implementado no exercício 58, faz refactor ao código para que este utilize enumeration flags em vez de constantes para referenciar as classes do jogo.
Using your implemented code from exercise 58, refactor it so that it uses enumeration flags instead of constantes to refer to the different classes of the game.
60 - Implementa uma função que recebe como input uma String e um número, e que repete essa String o número de vezes inserido.
Implement a function that receives as input a String and a Number. This function should return the same String repeated by the inputted number.
Output Example:
- Input:
"Banana"
,3
=> Output:"BananaBananaBanana"
- Input:
"Jar"
,1
=> Output:"JarJar"
- Input:
"Welcome"
,0
=>"Welcome"
61 - Um Anagrama consiste em reorganizar as letras de uma palavra para dar origem a outra nova palavra. Implementa uma função que recebe duas strings como input e verifica se uma palavra é anagrama da outra.
An Anagram consists of a word whose letters can be reorganized into a new word. Implement a function that takes two strings as an input and verifies if a word is an anagram of another.
Output Example:
- Input:
"Taste"
"State"
=> Output:TRUE
- Input:
"Dog"
"God"
=> Output:TRUE
- Input:
"Frog"
"Rock"
=> Output:FALSE
62 - Implementa uma função que deteta as vogais de uma string e que retorna um array de inteiros cujo contenha a posição de cada vogal dessa palavra. A contagem deve começar do 1 e não do 0.
Implement a function that detects the vowels of a string and returns an integer array containing the position of each vowel of the inputted string. Counting should start from 1 and not 0.
Output Example:
- Input:
"Hello"
=> Output:[2, 5]
- Input:
"World"
=> Output:[2]
- Input:
"Everyday"
=> Output:[1, 3, 7]
63 - Implementa uma função que recebe um número e retorna a soma de cada dígito desse número.
Implement a function that receives a number and returns the sum of each digit of that number.
Output Example:
- Input:
12
=> Output:3
(1 + 2) - Input:
345
=> Output:12
(3 + 4 + 5) - Input:
123456
=> Output:21
(1 + 2 + 3 + 4 + 5 + 6)
64 - Implementa uma função que recebe como input um array de strings, um inteiro e uma string. A função deverá retornar um array com a nova string inserido na posição do inteiro. Nota: Implemente esta função de raíz.
Implement a function that takes as input an array of strings, an integer and a string. The function should return an array with the new string inserted in the position of the integer. Note: Implement this function from scratch.
Output Example:
- Input:
["abc", "aaa", "ccc"]
,2
,"bbb"
=> Output:["abc", "aaa", "bbb", "ccc"]
- Input:
["0001", "0010", "0011"]
,0
"0000"
=> Ouput:["0000", "0001", "0010", "0011"]
65 - Implementa uma função que receba uma string e faça a sua inversão para cada palavra dessa string
Implement a function that receives a string and inverts every word of that string.
Output Example:
- Input:
"Hello World!"
=> Output:"olleH !dlroW"
- Input:
"Foo Bar"
=> Output:"ooF raB"
- Input:
"Cool Beans"
=> Output:"looC snaeB"