Практика для кодера
1.28K subscribers
52 photos
105 links
На этом канале будут публиковаться задачи для начинающих программистов. Можно решать на любом языке, делиться своим кодом и достижениями с другими участниками и обсуждать задачи в комментариях. Автор @morph1995
Download Telegram
Задача: Функция для вычисления факториала

Описание: Напишите функцию factorial(n), которая принимает число n и возвращает его факториал. Факториал числа n (обозначается как n!) — это произведение всех положительных целых чисел от 1 до n.

Пример решения:

function factorial(n) {
if (n === 0 || n === 1) {
return 1;
}
return n * factorial(n - 1);
}

// Пример использования
console.log(factorial(5)); // 120
console.log(factorial(0)); // 1
🔥3
Задача: Написать функцию, которая принимает массив чисел и возвращает среднее арифметическое этих чисел.

Решение:

function average(numbers) {
if (numbers.length === 0) return 0;

let sum = 0;
for (let i = 0; i < numbers.length; i++) {
sum += numbers[i];
}

return sum / numbers.length;
}

// Пример использования:
console.log(average([1, 2, 3, 4, 5])); // Выведет: 3
console.log(average([10, 20, 30])); // Выведет: 20
console.log(average([])); // Выведет: 0
🔥3
Задача: Функция для проверки палиндрома

Описание: Напишите функцию isPalindrome(str), которая принимает строку и возвращает true, если строка является палиндромом, и false в противном случае. Палиндром — это слово или фраза, которые читаются одинаково слева направо и справа налево (игнорируя пробелы, знаки препинания и регистр).

Пример решения:

function isPalindrome(str) {
// Удаляем все неалфавитные символы и приводим к нижнему регистру
const cleanedStr = str.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();
// Сравниваем строку с её перевёрнутой версией
return cleanedStr === cleanedStr.split('').reverse().join('');
}

// Пример использования
console.log(isPalindrome("A man, a plan, a canal, Panama")); // true
console.log(isPalindrome("Hello, World!")); // false
🔥2
Практика для кодера
Задача 77: Дано целое число N и набор из N прямоугольников, заданных своими сторонами — парами чисел (a, b). Найти максимальный периметр прямоугольника из данного набора Категория: Минимумы и максимумы Во всех заданиях данной группы предполагается, что исходный…
❗️ Ответ сгенерирован чат-ботом GPT-4o

⚙️ Запрос: Напиши код решения задачи на языке JavaScript. Условия задачи: Дано целое число N и набор из N прямоугольников, заданных своими сторонами — парами чисел (a, b). Найти максимальный периметр прямоугольника из данного набора

✔️ Задание: попробовать запустить этот код, проверить всё ли корректно работает, если нет исправить ошибки. При желании предложить свой вариант кода. Практикуемся в современных реалиях.

Для решения задачи нахождения максимального периметра прямоугольника из набора, заданного своими сторонами, можно использовать следующий подход на языке JavaScript:

Пройтись по каждому прямоугольнику в наборе.
Для каждого прямоугольника вычислить его периметр.
Сравнить вычисленный периметр с текущим максимальным и обновить максимальный периметр, если текущий больше.
Вот пример кода, который реализует этот алгоритм:
function maxRectanglePerimeter(rectangles) {
let maxPerimeter = 0;

for (let i = 0; i < rectangles.length; i++) {
const [a, b] = rectangles[i];
const perimeter = 2 * (a + b);
if (perimeter > maxPerimeter) {
maxPerimeter = perimeter;
}
}

return maxPerimeter;
}

// Пример использования:
const rectangles = [
[3, 4],
[5, 6],
[7, 8]
];

console.log(maxRectanglePerimeter(rectangles)); // Вывод: 30

В этом коде функция maxRectanglePerimeter принимает массив rectangles, где каждый элемент — это массив из двух чисел, представляющих стороны прямоугольника. Функция возвращает максимальный периметр среди всех прямоугольников.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
Практика для кодера
Задача 79: Дан символ C. Вывести два символа, первый из которых предшествует символу C в кодовой таблице, а второй следует за символом C Категория: Символы и строки При выполнении заданий на обработку русских букв можно считать, что буква «ё» в исходных…
❗️ Ответ сгенерирован чат-ботом GigaChat

⚙️ Запрос: Напиши программу на языке JavaScript которая будет решать задачу: Дан символ C. Вывести два символа, первый из которых предшествует символу C в кодовой таблице, а второй следует за символом C

✔️ Задание: попробовать запустить этот код, проверить всё ли корректно работает, если нет исправить ошибки. При желании предложить свой вариант кода. Практикуемся в современных реалиях.

Для решения этой задачи мы можем использовать метод charCodeAt() для получения кода символа и затем вычислить код символов, которые предшествуют и следуют за данным символом. Вот пример такой программы на JavaScript:

function getPreviousAndNextCharCodes(c) {
// Получаем код символа c
var code = c.charCodeAt(0);
// Вычисляем код предыдущего символа
var previousCode = code - 1;
// Вычисляем код следующего символа
var nextCode = code + 1;

// Преобразуем коды обратно в символы
return [String.fromCharCode(previousCode), String.fromCharCode(nextCode)];
}

// Пример использования функции
var c = 'C';
var result = getPreviousAndNextCharCodes(c);
console.log(result[0]); // Выведет 'B'
console.log(result[1]); // Выведет 'D'


Этот код определяет функцию getPreviousAndNextCharCodes, которая принимает символ и возвращает массив из двух элементов: первый элемент - символ, который предшествует данному символу в кодовой таблице, а второй элемент - символ, который следует за данным символом. Функция использует метод charCodeAt для получения кода символа, а затем вычисляет коды предыдущего и следующего символов, преобразуя их обратно в символы с помощью String.fromCharCode.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3
Сегодня я подготовил для вас очень классный макет для практики.

Можно попробовать свои силы и сверстать предложенный макет. Таким образом вы сможете закрепить все изученное, попробовать свои силы и добавить ещё одну работу в портфолио.

Недавно я записал три больших видео урока, они максимально актуальные и научат вас:

1. Верстке сайта по макету из Figma без Dev Mode в бесплатной версии
2. Верстке сайта по макету из Figma используя плагин Inspect Styles
3. Верстке сайта по макету из Pixso

Все это вы можете найти в моем бесплатном курсе на Stepik, с большим количеством заданий, а так же уроки не только по верстке, но и по работе с Wordpress, хостингом и многое другое.

💡 Записаться бесплатно

#layout
🔥81👍1
Практика для кодера
Задача 80: Дано целое число N и набор из N чисел. Найти номер минимального элемента из данного набора Категория: Минимумы и максимумы Во всех заданиях данной группы предполагается, что исходный набор содержит ненулевое количество элементов (в частности,…
❗️ Ответ сгенерирован чат-ботом GigaChat

⚙️ Запрос: Напиши программу на языке JavaScript которая будет решать задачу: Дано целое число N и набор из N чисел. Найти номер минимального элемента из данного набора

✔️ Задание: попробовать запустить этот код, проверить всё ли корректно работает, если нет исправить ошибки. При желании предложить свой вариант кода. Практикуемся в современных реалиях.

Для решения задачи нахождения номера минимального элемента в наборе чисел на языке JavaScript, мы можем воспользоваться встроенными методами языка. Ниже приведена программа, которая выполняет эту задачу:

function findMinIndex(arr) {
// Если массив пустой, возвращаем -1
if (!arr || arr.length === 0) return -1;

let min = Infinity;
let index = -1;

for (let i = 0; i < arr.length; i++) {
if (arr[i] < min) {
min = arr[i];
index = i;
}
}

return index;
}

// Пример использования функции
const numbers = [4, 6, 9, 7, 8, 1];
console.log("Минимальный элемент: ", numbers[findMinIndex(numbers)]);


### Объяснение кода:

1. Функция `findMinIndex`:
- Принимает массив чисел arr.
- Проверяет, является ли массив пустым или нет. Если да, то сразу возвращает -1, так как индекс отсутствует.
- Затем инициализирует переменную min значением Infinity для удобства сравнения с элементами массива. Переменная index также инициализируется значением -1.

2. В цикле перебираются все элементы массива от 0 до длины массива.
3. Внутри цикла проверяется условие, когда текущий элемент меньше текущего минимума (min). Если это так, обновляются значения min и index.
4. После завершения цикла возвращается значение index, которое указывает на индекс минимального числа в массиве.

Программа проста в использовании и эффективна для малых и средних размеров массивов.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32
Сегодня я подготовил для вас очень классный макет для практики.

Можно попробовать свои силы и сверстать предложенный макет. Таким образом вы сможете закрепить все изученное, попробовать свои силы и добавить ещё одну работу в портфолио.

Недавно я записал три больших видео урока, они максимально актуальные и научат вас:

1. Верстке сайта по макету из Figma без Dev Mode в бесплатной версии
2. Верстке сайта по макету из Figma используя плагин Inspect Styles
3. Верстке сайта по макету из Pixso

Все это вы можете найти в моем бесплатном курсе на Stepik, с большим количеством заданий, а так же уроки не только по верстке, но и по работе с Wordpress, хостингом и многое другое.

💡 Записаться бесплатно

#layout
🔥11
❗️ Ответ сгенерирован чат-ботом GigaChat

⚙️ Запрос: Как правильно сделать на HTML и CSS чтобы маленькая карточка, размещенная position: absolute относительно большой карточки также уменьшалась пропорционально большой карточке? Я сделал через clamp относительно ширины экрана, но как-то хотелось бы, чтобы обе картинки пропорционально уменьшались.

✔️ Задание: попробовать запустить этот код, проверить всё ли корректно работает, если нет исправить ошибки. При желании предложить свой вариант кода. Практикуемся в современных реалиях.

Чтобы маленькая карточка уменьшалась пропорционально большой карточке при изменении размеров последней, можно использовать CSS-функции calc() и clamp(). Для этого необходимо определить общий размер большой карточки и использовать эти функции для изменения размера маленькой карточки в зависимости от размера большой. Вот пример кода, который может вам помочь:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Card Example</title>
<style>
.big-card {
width: 60%; /* Ширина большой карточки */
height: auto; /* Высота автоматически подстраивается под содержимое */
border: 1px solid #ccc;
display: flex;
justify-content: center;
align-items: center;
position: relative;
}

.small-card {
background-color: #ddd;
width: calc(50% - 4px); /* Размер маленькой карточки */
height: calc(50% - 4px);
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
</style>
</head>
<body>
<div class="big-card">
<img src="https://via.placeholder.com/300" alt="Big Card Image">
<div class="small-card"></div>
</div>
</body>
</html>


В этом примере:
1. .big-card: Это контейнер для большой карточки. Он имеет фиксированную ширину (например, 60%) и высоту, которая автоматически адаптируется под содержимое.
2. .small-card: Это маленькая карточка внутри большой. Она позиционирована абсолютно относительно .big-card, и её размеры изменяются в зависимости от размеров .big-card.

Таким образом, если вы измените размер .big-card, .small-card будет уменьшаться или увеличиваться пропорционально.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11
Сегодня я подготовил для вас очень классный макет для практики.

Можно попробовать свои силы и сверстать предложенный макет. Таким образом вы сможете закрепить все изученное, попробовать свои силы и добавить ещё одну работу в портфолио.

Недавно я записал три больших видео урока, они максимально актуальные и научат вас:

1. Верстке сайта по макету из Figma без Dev Mode в бесплатной версии
2. Верстке сайта по макету из Figma используя плагин Inspect Styles
3. Верстке сайта по макету из Pixso

Все это вы можете найти в моем бесплатном курсе на Stepik, с большим количеством заданий, а так же уроки не только по верстке, но и по работе с Wordpress, хостингом и многое другое.

💡 Записаться бесплатно

#layout
🔥64👍1
Сегодня я подготовил для вас очень классный макет для практики.

Можно попробовать свои силы и сверстать предложенный макет. Таким образом вы сможете закрепить все изученное, попробовать свои силы и добавить ещё одну работу в портфолио.

Недавно я записал три больших видео урока, они максимально актуальные и научат вас:

1. Верстке сайта по макету из Figma без Dev Mode в бесплатной версии
2. Верстке сайта по макету из Figma используя плагин Inspect Styles
3. Верстке сайта по макету из Pixso

Все это вы можете найти в моем бесплатном курсе на Stepik, с большим количеством заданий, а так же уроки не только по верстке, но и по работе с Wordpress, хостингом и многое другое.

💡 Записаться бесплатно

#layout
6🔥5
Практика для кодера
Задача 81: Дан массив размера N. Вывести его элементы в обратном порядке Категория: Одномерные массивы Условие вида «дан массив размера N» означает, что вначале дается фактический размер массива (целое число N), а затем приводятся все его элементы. Если…
❗️ Ответ сгенерирован чат-ботом GigaChat

⚙️ Запрос: Напиши программу на языке JavaScript которая будет решать задачу: Дан массив размера N. Вывести его элементы в обратном порядке

✔️ Задание: попробовать запустить этот код, проверить всё ли корректно работает, если нет исправить ошибки. При желании предложить свой вариант кода. Практикуемся в современных реалиях.

Вот пример программы на JavaScript, которая решает эту задачу:

// Функция для вывода элементов массива в обратном порядке
function reverseArray(arr) {
// Создаем новый массив для хранения элементов в обратном порядке
let reversedArr = [];

// Проходимся по исходному массиву от конца к началу
for (let i = arr.length - 1; i >= 0; i--) {
// Добавляем элемент в начало нового массива
reversedArr.push(arr[i]);
}

return reversedArr;
}

// Пример использования функции
const array = [1, 2, 3, 4, 5];
console.log(reverseArray(array)); // Вывод: [5, 4, 3, 2, 1]


### Объяснение работы кода:
1. Функция reverseArray принимает массив arr.
2. Внутри функции создается пустой массив reversedArr, который будет хранить элементы в обратном порядке.
3. Цикл for проходит по исходному массиву от последнего элемента (i = arr.length - 1) до первого (i = 0), уменьшая индекс на единицу при каждой итерации.
4. На каждом шаге цикла текущий элемент добавляется в начало нового массива с помощью метода .push().
5. После завершения цикла функция возвращает заполненный массив reversedArr.
6. В примере использования создается массив [1, 2, 3, 4, 5], передается в функцию reverseArray, а результат выводится в консоль.

Таким образом, программа выводит элементы массива в обратном порядке.
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥3👍2
Практика для кодера pinned «Задача 82: Дано целое число N (1 ≤ N ≤ 26). Вывести N первых прописных (то есть заглавных) букв латинского алфавита Категория: Символы и строки При выполнении заданий на обработку русских букв можно считать, что буква «ё» в исходных строковых данных отсутствует.…»
Практика для кодера
Задача 82: Дано целое число N (1 ≤ N ≤ 26). Вывести N первых прописных (то есть заглавных) букв латинского алфавита Категория: Символы и строки При выполнении заданий на обработку русских букв можно считать, что буква «ё» в исходных строковых данных отсутствует.…
❗️ Ответ сгенерирован чат-ботом GigaChat

⚙️ Запрос: Напиши программу на языке JavaScript которая будет решать задачу: Дано целое число N (1 ≤ N ≤ 26). Вывести N первых прописных (то есть заглавных) букв латинского алфавита

✔️ Задание: попробовать запустить этот код, проверить всё ли корректно работает, если нет исправить ошибки. При желании предложить свой вариант кода. Практикуемся в современных реалиях.

Вот пример программы на JavaScript для решения этой задачи:

// Функция для вывода N первых прописных букв латинского алфавита
function printFirstNLetters(N) {
if (typeof N !== 'number' || N < 1 || N > 26) {
console.error('Ошибка: N должно быть целым числом от 1 до 26.');
return;
}

let result = '';
for (let i = 0; i < N; i++) {
// Код ASCII для буквы A равен 65, поэтому добавляем к нему индекс i
const charCode = 65 + i;
result += String.fromCharCode(charCode);
}

console.log(result);
}

// Пример использования функции
printFirstNLetters(10); // Выведет: ABCDEFGHIJ


### Объяснение кода:
1. Проверка входного значения: Сначала проверяем, является ли N числом и находится ли оно в диапазоне от 1 до 26. Если нет, выводим сообщение об ошибке и завершаем выполнение функции.

2. Цикл для генерации букв: Используем цикл for, который проходит от 0 до N. Внутри цикла вычисляем код символа ASCII для текущей буквы, добавляя значение индекса i к коду символа 'A', который равен 65.

3. Формирование строки: Для каждого шага цикла создаем букву с помощью метода String.fromCharCode() и добавляем её к строке результата.

4. Вывод результата: После завершения цикла выводим результат через console.log().

Этот алгоритм позволяет легко генерировать любое количество прописных букв латинского алфавита, начиная с первой (A), просто изменяя значение переменной N.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31
Сегодня я подготовил для вас очень классный макет для практики.

Можно попробовать свои силы и сверстать предложенный макет. Таким образом вы сможете закрепить все изученное, попробовать свои силы и добавить ещё одну работу в портфолио.

Недавно я записал три больших видео урока, они максимально актуальные и научат вас:

1. Верстке сайта по макету из Figma без Dev Mode в бесплатной версии
2. Верстке сайта по макету из Figma используя плагин Inspect Styles
3. Верстке сайта по макету из Pixso

Все это вы можете найти в моем бесплатном курсе на Stepik, с большим количеством заданий, а так же уроки не только по верстке, но и по работе с Wordpress, хостингом и многое другое.

💡 Записаться бесплатно

#layout
🔥8👍3
Практика для кодера
Задача 83: Дано целое число N и набор из N пар чисел (m, v) — данные о массе m и объеме v деталей, изготовленных из различных материалов. Вывести номер детали, изготовленной из материала максимальной плотности, а также величину этой максимальной плотности.…
❗️ Ответ сгенерирован чат-ботом GigaChat

⚙️ Запрос: Напиши программу на языке JavaScript которая будет решать задачу: Дано целое число N и набор из N пар чисел (m, v) — данные о массе m и объеме v деталей, изготовленных из различных материалов. Вывести номер детали, изготовленной из материала максимальной плотности, а также величину этой максимальной плотности. Плотность P вычисляется по формуле P = m/v

✔️ Задание: попробовать запустить этот код, проверить всё ли корректно работает, если нет исправить ошибки. При желании предложить свой вариант кода. Практикуемся в современных реалиях.

Для решения задачи на языке JavaScript нужно написать функцию, которая принимает массив пар чисел (m, v) и возвращает индекс детали с наибольшей плотностью и саму максимальную плотность. Вот пример программы:

// Функция для нахождения номера детали с максимальной плотностью
function findMaxDensity(details) {
// Проверка входных данных
if (!Array.isArray(details) || details.length === 0) {
return null;
}

let maxDensity = Number.NEGATIVE_INFINITY;
let maxIndex = -1;

for (let i = 0; i < details.length; i++) {
const [mass, volume] = details[i];

// Вычисляем плотность текущей детали
const density = mass / volume;

// Если текущая плотность больше максимальной, обновляем значения
if (density > maxDensity) {
maxDensity = density;
maxIndex = i + 1; // Нумерация начинается с 1
}
}

return { index: maxIndex, density: maxDensity };
}

// Пример использования функции
const details = [
[10, 20], // Плотность = 0.5
[15, 30], // Плотность = 0.5
[25, 40], // Плотность = 0.625
[35, 50], // Плотность = 0.7
[45, 60] // Плотность = 0.75
];

const result = findMaxDensity(details);
console.log(`Номер детали с максимальной плотностью: ${result.index}`);
console.log(`Максимальная плотность: ${result.density.toFixed(3)}`);


### Объяснение кода:
1. Функция `findMaxDensity` принимает массив details, где каждая пара представляет собой массу и объем детали.
2. Внутри функции инициализируются переменные maxDensity и maxIndex. Изначально максимальная плотность задается как отрицательная бесконечность (Number.NEGATIVE_INFINITY), чтобы любая положительная плотность была больше начального значения.
3. В цикле перебираются все пары (массa, объем) и вычисляется их плотность. Если текущая плотность больше максимальной, то обновляются значения maxDensity и maxIndex.
4. После завершения цикла функция возвращает объект с номером детали (индекс плюс единица, так как нумерация начинается с единицы) и значением максимальной плотности.
5. В примере использования создается массив деталей и вызывается функция findMaxDensity. Результат выводится в консоль.

Этот код решает поставленную задачу и выводит номер детали с максимальной плотностью вместе со значением этой плотности.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42👍1
Практика для кодера
Задача 84: Дан целочисленный массив размера N. Вывести все содержащиеся в данном массиве нечетные числа в порядке возрастания их индексов, а также их количество K Категория: Одномерные массивы Условие вида «дан массив размера N» означает, что вначале дается…
❗️ Ответ сгенерирован чат-ботом GigaChat

⚙️ Запрос: Напиши программу на языке JavaScript которая будет решать задачу: Дан целочисленный массив размера N. Вывести все содержащиеся в данном массиве нечетные числа в порядке возрастания их индексов, а также их количество K

✔️ Задание: попробовать запустить этот код, проверить всё ли корректно работает, если нет исправить ошибки. При желании предложить свой вариант кода. Практикуемся в современных реалиях.

Вот пример программы на JavaScript для решения задачи:

// Функция для вывода всех нечетных чисел массива и их количества
function findOddNumbers(arr) {
let oddNumbers = [];

// Проходим по каждому элементу массива
for (let i = 0; i < arr.length; i++) {
if (arr[i] % 2 !== 0) { // Проверяем, является ли число нечетным
oddNumbers.push(arr[i]); // Добавляем нечетное число в новый массив
}
}

console.log("Нечетные числа:", ...oddNumbers); // Выводим нечетные числа
console.log("Количество нечетных чисел:", oddNumbers.length); // Выводим количество нечетных чисел
}

// Пример использования функции
const array = [4, 9, 6, 7, 8, 11];
findOddNumbers(array);



### Объяснение работы кода:
1. Функция findOddNumbers принимает массив arr.
2. Внутри функции создается пустой массив oddNumbers, который будет хранить найденные нечетные числа.
3. С помощью цикла for мы проходим по всем элементам исходного массива.
4. Для каждого элемента проверяется условие: если остаток от деления на 2 равен нулю (% 2 !== 0), то это число нечетное, и оно добавляется в массив oddNumbers.
5. После завершения цикла выводятся все нечетные числа через оператор распространения (...) и их количество с использованием свойства .length.

### Пример вывода:
Для входного массива [4, 9, 6, 7, 8, 11] программа выведет:

Нечетные числа: 9 7 11
Количество нечетных чисел: 3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥41😢1
Сегодня я подготовил для вас очень классный макет для практики.

Можно попробовать свои силы и сверстать предложенный макет. Таким образом вы сможете закрепить все изученное, попробовать свои силы и добавить ещё одну работу в портфолио.

Недавно я записал три больших видео урока, они максимально актуальные и научат вас:

1. Верстке сайта по макету из Figma без Dev Mode в бесплатной версии
2. Верстке сайта по макету из Figma используя плагин Inspect Styles
3. Верстке сайта по макету из Pixso

Все это вы можете найти в моем бесплатном курсе на Stepik, с большим количеством заданий, а так же уроки не только по верстке, но и по работе с Wordpress, хостингом и многое другое.

💡 Записаться бесплатно

#layout
👍3🔥32
Практика для кодера pinned «Задача 86: Дано целое число N и набор из N целых чисел. Найти номера первого минимального и последнего максимального элемента из данного набора и вывести их в указанном порядке Категория: Минимумы и максимумы Во всех заданиях данной группы предполагается…»
Практика для кодера
Задача 85: Дано целое число N (1 ≤ N ≤ 26). Вывести N последних строчных (то есть маленьких) букв латинского алфавита в обратном порядке (начиная с буквы «z») Категория: Символы и строки При выполнении заданий на обработку русских букв можно считать, что…
❗️ Ответ сгенерирован чат-ботом GigaChat

⚙️ Запрос: Напиши программу на языке JavaScript которая будет решать задачу: Дано целое число N (1 ≤ N ≤ 26). Вывести N последних строчных (то есть маленьких) букв латинского алфавита в обратном порядке (начиная с буквы «z»)

✔️ Задание: попробовать запустить этот код, проверить всё ли корректно работает, если нет исправить ошибки. При желании предложить свой вариант кода. Практикуемся в современных реалиях.

Вот пример программы на JavaScript для решения этой задачи:

function printLastLettersReverse(N) {
// Проверка входных данных
if (!Number.isInteger(N) || N < 1 || N > 26) {
console.log("Ошибка: N должно быть целым числом от 1 до 26");
return;
}

let result = "";

// Генерируем буквы в обратном порядке, начиная с 'z'
for (let i = 0; i < N; i++) {
// Код буквы 'z' - 122, вычитаем i для движения в обратном порядке
const charCode = 122 - i;
result += String.fromCharCode(charCode);

// Добавляем пробел между буквами, кроме последней
if (i < N - 1) {
result += " ";
}
}

console.log(`N = ${N}: ${result}`);
return result;
}

// Примеры использования:
printLastLettersReverse(1); // N = 1: z
printLastLettersReverse(3); // N = 3: z y x
printLastLettersReverse(5); // N = 5: z y x w v
printLastLettersReverse(10); // N = 10: z y x w v u t s r q
printLastLettersReverse(26); // N = 26: z y x w v u t s r q p o n m l k j i h g f e d c b a
printLastLettersReverse(0); // Ошибка: N должно быть целым числом от 1 до 26
printLastLettersReverse(27); // Ошибка: N должно быть целым числом от 1 до 26
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍21
Практика для кодера
Задача 86: Дано целое число N и набор из N целых чисел. Найти номера первого минимального и последнего максимального элемента из данного набора и вывести их в указанном порядке Категория: Минимумы и максимумы Во всех заданиях данной группы предполагается…
❗️ Ответ сгенерирован чат-ботом GigaChat

⚙️ Запрос: Напиши программу на языке JavaScript которая будет решать задачу: Дано целое число N и набор из N целых чисел. Найти номера первого минимального и последнего максимального элемента из данного набора и вывести их в указанном порядке

✔️ Задание: попробовать запустить этот код, проверить всё ли корректно работает, если нет исправить ошибки. При желании предложить свой вариант кода. Практикуемся в современных реалиях.

Вот пример программы на JavaScript, решающей данную задачу:

// Функция для поиска индексов первого минимального и последнего максимального элементов
function findMinMaxIndexes(arr) {
let minIndex = 0;
let maxIndex = 0;

// Проходим по массиву для нахождения индексов
for (let i = 1; i < arr.length; i++) {
if (arr[i] < arr[minIndex]) {
minIndex = i;
}

if (arr[i] >= arr[maxIndex]) {
maxIndex = i;
}
}

return [minIndex + 1, maxIndex + 1]; // Возвращаем индексы с учетом 1-based индексации
}

// Тестирование функции
const array = [4, 7, 9, 6, 8, 10, 12];
const result = findMinMaxIndexes(array);
console.log(`Первый минимальный элемент находится на позиции ${result[0]}, последний максимальный — на позиции ${result[1]}`);


### Пояснения:
1. Функция `findMinMaxIndexes` принимает массив arr.
2. В цикле мы проходим по каждому элементу массива начиная с индекса 1, сравнивая каждый элемент с текущим минимальным (minIndex) и максимальным (maxIndex).
3. Если находим элемент меньше текущего минимума, обновляем индекс минимума (minIndex). Аналогично, если находим элемент больше или равный текущему максимуму, обновляем индекс максимума (maxIndex).
4. Индексы возвращаются с учётом того, что нумерация начинается с 1, а не с 0.

Пример вывода для тестового массива [4, 7, 9, 6, 8, 10, 12]:
Первый минимальный элемент находится на позиции 1, последний максимальный — на позиции 7


Этот код решает поставленную задачу эффективно за один проход по массиву.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥31