| catalin542000 a întrebat:

Salut. M-ati putea sa rezolv aceste teme în kotlin (Android studio)?
Sunt începător și de ceva timp avem teme cu diferite probleme în kotlin. Dar profesorii cum explica ei foarte în mare și pe scurt (eu cel puțin nu reușesc sa prind). M-am mai uitat asa pe câteva tutoriale pe YouTube, gen full course dar deocamdată nimic care sa ma ajute la tema.

Am in felul următor, următoarele exercitii:

Problem 1
Given integer a = 6, integer b = 10, float c = 0.2. Calculate x = a*b/c.

Problem 2
Given an integer a = 235230. Calculate the sum of the digits of the number.

Problem 3
Given two strings of lowercase English letters, a and b, perform the following operations:
Sum the lengths of a and b.
Determine if a is lexicographically larger than b.
Capitalize the first letter in a and b and print them on a single line, separated by a space.

Problem 4
Given a string a, print Yes if it is a palindrome, print No otherwise.

Problem 5
Given a string, s, and two indices, start and end, print a substring consisting of all characters in the
inclusive range from start to end. You'll find the String class substring method helpful in completing this challenge.

Problem 6
Given n. Display the following pattern
====/_\====
===/___ \===
==/______\==
=/_________\=
/___________\
n = 5 elements used "=", "_", "/", "\"

Problem 7
Write a function that receives a parameter n Int and returns "Fizz Buzz " if the number is divisible with 5 and 3,
returns "Fizz " if the number is divisible with 3, "Buzz " if the number is divisible with 5, else returns the number
itself (use when expression for this function).

Problem 8
Say that a "clump" in an array is a series of 2 or more adjacent elements of the same value. Return the number
of clumps in the given array.

countClumps([1, 2, 2, 3, 4, 4]) → 2
countClumps([1, 1, 2, 1, 1]) → 2
countClumps([1, 1, 1, 1, 1]) → 1


Problem 9
Display the frequency of all the letters in the following phrase:
"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has
been the industry's standard dummy text ever since the 1500s, when an unknown printer took
a galley of type and scrambled it to make a type specimen book. "

Problem 10
Create an object-oriented model of the problem. You should have the following classes:
Student, Teacher, Course and Faculty in order to implement the admission of students to
optional courses.
A teacher must have name and email fields
A student must have name, email and preferred courses fields
A course must have name, teacher and enrolled students
The faculty class will have one method which will execute the logic required for assigning
students to optional courses. The goal is to make the code from the next slide run.

Aici este codul unde bănuiesc ca aici în el trebuie făcută problema:
https://gist.github.com/oanabejenaru/3faf395bc3b52117509 29617d5bf2305


Problem 11
Write a method called cloneArray that takes an array of integers as a parameter, creates a
new array that is the same size, copies the elements from the first array into the new one,
and then returns a reference to the new array.

Problem 12
Write a method that takes an array of integers and an integer named target as arguments,
and that returns the first index where target appears in the array, if it does, and -1
otherwise.

Problem 13
Create a new program and write an iterative version of factorial
Print a table of the integers from 0 to 30 along with their factorials.

Problem 14
Two words are anagrams if they contain the same letters (and the same number of each
letter). For example, "stop" is an anagram of "pots".
Write a method that takes two Strings and returns true if the Strings are anagrams of each
other.



Acestea sunt problemele.
Trebuiesc făcute jn Android studio cu kotlin.
Eu vreau sa învăț și sunt dornic sa învăț kotlin, dar este prea devreme, nu am făcut niciodată NIMIC în kotlin, nici numele lui nu a fost pronunțat vreodată și dintr-o data avem teme în kotlin și efectiv nu pot, iar naspa este ca am și un termen cam scurtut de altfel iar de învățat mai ales fiind la extra început, nu pot învață și rapid.

Va rog sa ma ajutați și dacă o sa ma ajutați dau FUNDA fără sa mai stau la discuții, nici nu are rost dacă sa ma mai gandesc la asta sau nu, dau funda direct!

Mulțumesc frumos! laughing

Răspuns Câştigător
| ForbbidenLife a răspuns:

Pentru problema 1, poţi începe prin a declara variabilele a, b şi c şi apoi poţi calcula x prin a face a*b/c. În Kotlin, poţi face asta astfel:
val a = 6
val b = 10
val c = 0.2
val x = a*b/c

Pentru problema 2, poţi începe prin a converti numărul întreg într-un şir de caractere şi apoi poţi parcurge fiecare caracter, convertindu-l la un număr şi adăugându-l la suma totală. În Kotlin, poţi face asta astfel:

val a = 235230
var sum = 0
val str = a.toString()
for (ch in str) {
sum += ch.toInt() - '0'.toInt()
}

Pentru problema 3, poţi începe prin a calcula suma lungimilor şirurilor a şi b şi apoi poţi compara şirurile lexicografic. Dacă a este mai mare decât b, poţi tipări "a este mai mare decât b", altfel poţi tipări "b este mai mare decât a". După aceea, poţi capitaliza primele litere din şirurile a şi b şi le poţi tipări pe o singură linie, separate de un spaţiu. În Kotlin, poţi face asta astfel:
val a = "abc"
val b = "def"
val sum = a. length + b. length
if (a > b) {
println("a este mai mare decât b")
} else {
println("b este mai mare decât a")
}
val aCapitalized = a.capitalize()
val bCapitalized = b.capitalize()
println("$aCapitalized $bCapitalized")

Pentru problema 4, poţi începe prin a verifica dacă şirul este un palindrom. Poţi face asta prin a compara şirul inversat cu şirul original. Dacă sunt egale, atunci şirul este un palindrom, altfel nu este. În Kotlin, poţi face asta astfel:

val a = "racecar"
if (a == a.reversed()) {
println("Yes")
} else {
println("No")
}

Pentru problema 5, poţi începe prin a obţine un subsir din şirul dat folosind metoda substring. În Kotlin, poţi face asta astfel:
val s = "abcdefghijklmnopqrstuvwxyz"
val start = 3
val end = 7
val sub = s.substring(start.end)
println(sub) // va afişa "defgh"

Pentru problema 6, poţi începe prin a tipări liniile cu caracterele dat. Poţi face asta prin a utiliza câte un ciclu for pentru fiecare linie şi tipărind caracterele necesare în funcţie de poziţia în linie. În Kotlin, poţi face asta astfel:
val n = 5
for (i in 0 until n) {
for (j in 0 until 2*n) {
if (j == n-i-1 || j == n+i) {
print("/")
} else if (j == n+i+1) {
print("\\")
} else {
print("=")
}
}
println()
}


Pentru problema 7, poţi începe prin a scrie o funcţie care primeşte un parametru n şi returnează "Fizz Buzz" dacă n este divizibil cu 3 şi 5, "Fizz" dacă n este divizibil doar cu 3, "Buzz" dacă n este divizibil doar cu 5 şi numărul în sine în caz contrar. Poţi face asta prin a utiliza expresia when. În Kotlin, poţi face asta astfel:

fun fizzBuzz(n: Int): String {
return when {
n % 3 == 0 && n % 5 == 0 -> "Fizz Buzz"
n % 3 == 0 -> "Fizz"
n % 5 == 0 -> "Buzz"
else -> n.toString()
}
}

Pentru problema 8, poţi începe prin a parcurge array-ul şi a verifica dacă elementele consecutive sunt egale. Dacă sunt, atunci poţi incrementa contorul de clump-uri. În Kotlin, poţi face asta astfel:


fun countClumps(array: IntArray): Int {
var count = 0
for (i in 1 until array.size) {
if (array[i] == array[i-1]) {
count++
}
}
return count
}

Pentru problema 9, poţi începe prin a citi şirul şi a păstra o hartă care conţine frecvenţa fiecărui caracter.

fun countFrequencies(s: String) {
val frequencies = mutableMapOf()
for (c in s) {
if (c in frequencies) {
frequencies[c] = frequencies[c]! + 1
} else {
frequencies[c] = 1
}
}
for ((c, count) in frequencies) {
println("$c: $count")
}
}


Pentru problema 10, poţi începe prin a crea clasele Student, Teacher, Course şi Faculty. Clasa Student poate avea câmpurile name, email şi preferredCourses, iar clasa Teacher poate avea câmpurile name şi email. Clasa Course poate avea câmpurile name, teacher şi enrolledStudents, iar clasa Faculty poate avea metoda enrollInCourses care primeşte o listă de studenţi şi le asigură că sunt înscrişi în cursurile lor preferate, dacă acestea sunt disponibile. În Kotlin, poţi face asta astfel:

class Student(val name: String, val email: String, val preferredCourses: List)

class Teacher(val name: String, val email: String)

class Course(val name: String, val teacher: Teacher, val enrolledStudents: MutableList)

class Faculty {
fun enrollInCourses(students: List) {
for (student in students) {
val availableCourses = getAvailableCourses(student.preferredCourses)
for (course in availableCourses) {
course.enrolledStudents.add(student)
}
}
}

private fun getAvailableCourses(preferredCourses: List): List {
// implementare pentru a returna cursurile disponibile din preferredCourses
}
}

Pentru problema 11, poţi începe prin a crea o funcţie care primeşte un array de întregi şi creează un nou array de acelaşi mărime şi copiază elementele din primul array în cel de-al doilea. Apoi poţi returna referinţa către noul array.

fun cloneArray(array: IntArray): IntArray {
val clone = IntArray(array.size)
for (i in array.indices) {
clone[i] = array[i]
}
return clone
}

Pentru problema 12, poţi începe prin a parcurge array-ul şi a verifica dacă elementul curent este egal cu target. Dacă este, poţi returna poziţia curentă. Dacă nu, poţi continua parcurgerea array-ului până când se termină. Dacă nu s-a găsit niciun element egal cu target, poţi returna -1.

fun findTarget(array: IntArray, target: Int): Int {
for (i in array.indices) {
if (array[i] == target) {
return i
}
}
return -1
}

Pentru problema 13, poţi începe prin a scrie o funcţie care calculează factorialul unui număr. Poţi face asta prin a începe cu un contor egal cu numărul dat şi apoi prin a înmulţi contorul cu fiecare număr mai mic decât el până la 1.

fun factorial(n: Int): Int {
var result = n
for (i in 2 until n) {
result *= i
}
return result
}

for (i in 0.30) {
println("$i! = ${factorial(i)}")
}

Pentru problema 14, poţi începe prin a scrie o funcţie care primeşte două şiruri de caractere şi verifică dacă sunt anagrame.


fun isAnagram(s1: String, s2: String): Boolean {
val sorted1 = s1.toLowerCase().sorted()
val sorted2 = s2.toLowerCase().sorted()
return sorted1 == sorted2
}

1 răspuns:
| oglindasultanului a răspuns:

Cauta lectia si inlocuieste nr din lectie cu cele din "probleme". Cred ca ceea ce nu intelgi e engleza.