Код программы:
import kotlin.math.abs
// функция проверки что в числе есть цифра 3
fun check(num:Int):Boolean
{
var n = abs(num)
while(n > 0){
if(n % 10 == 3)
return true
n /= 10
}
return false
}
fun main(){
// объявления переменных
var a = 0
var ind = -1
var max = Int.MIN_VALUE // -2147483648
var i = 0
println("Введите последовательность чисел, заканчивая 0:")
// ввод данных и вычисления
do{
i++
a = readLine()!!.toInt()
if(check(a) && a > max){
max = a
ind = i
}
} while(a != 0)
// вывод результата
if(ind != -1)
println("Значение наибольшее = $max , номер числа = $ind")
else
println("Таких чисел не найдено!")
}
Результат выполнения программы:
Вывод
В данной лабораторной работе я научился разрабатывать циклические вычислительные выражения с помощью конструкции do while, работе с условиями и сравнениями значений, изучил булевый тип, нашёл наибольшее введенное значение и его индекс.
Лабораторная работа №5
Тема: Определение характеристик одномерных массивов
Задание
Требуется определить массив целых чисел (например, размера 30), заполнить его случайными числами (в диапазоне от A до B, где A и B задаются в директивах #define) или ввести его элементы с клавиатуры и определить его характеристики в соответствии с вариантом.
Программа должна содержать следующие функции:
• инициализация элементов массива случайными числами или вводимыми с клавиатуры;
• вывод массива на экран.
Вариант B4. Найти количество попарно различных элементов массива, меньших числа M.
Код программы:
// функция печати массива
fun printArr(arr:Array<Int>){
for(elem in arr)
print("$elem ")
println()
}
// функция заполнения массива случ. числами
fun randArr(n:Int):Array<Int>{
val A = -10
val B = 10
var arr = Array(n, {(A..B).random()})
return arr
}
// функция заполнения массива с клавиатуры
fun inputArr(n:Int):Array<Int>{
var arr = Array(n, { readLine()!!.toInt()})
return arr
}
// функция нахождения количества попарно различных элементов, меньших чем M
fun myFun(arr: Array<Int>, M:Int):Int{
var count = 0
for(i in arr.indices)
for(j in i + 1..arr.size - 1)
if(arr[i] != arr[j] && arr[i] < M && arr[j] < M)
count++
return count
}
fun main(){
// объявления переменных
var arr: Array<Int>
print("Введите M: ")
var M = readLine()!!.toInt()
print("Введите 1 для случайного заполнения и 2 для заполнения с клавиатуры:")
if(readLine()!!.toInt() == 1)
arr = randArr(10)
else
{
println("Введите элементы массива: ")
arr = inputArr(10)
}
println("Исходный массив: ")
printArr(arr)
// вывод результата
println("Количество попарно различных элементов, меньших чем M = $M , равно ${myFun(arr, M)}")
}
Результат выполнения программы:
Вывод
В данной лабораторной работе я научился разрабатывать циклические вычислительные выражения с помощью конструкции for, научился заполнять массив случайными значениями, заполнять массив значениями введенных с помощью клавиатуры, нашёл кол-во различных элементов меньше М.
Лабораторная работа №6
Тема: Модификация одномерных массивов
Задание
Требуется определить массив целых чисел (например, размера 30), заполнить его случайными числами (в диапазоне от A до B, где A и B задаются в директивах #define) или ввести его элементы с клавиатуры и преобразовать массив в соответствии с вариантом задания.
Программа должна содержать следующие функции:
• инициализация элементов массива случайными числами или вводимыми с клавиатуры;
• вывод массива на экран;
• вычисление минимального/максимального элемента массива.
Вариант A4: Заменить положительные четные элементы массива на наибольший элемент массива.