04.07.2020, 16:53 | #1 (permalink) |
Новичок
Регистрация: 02.07.2020
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Перевод из Pascal в C++
Есть решение на языке Pascal: Код:
var a: array[,] of integer; BEGIN var n := ReadlnInteger('Введите кол-во строк массива: '); var m := ReadlnInteger('Введите кол-во столбцов массива: '); SetLength(a, n, m + 1); var k := ReadlnInteger('Введите искомый элемент K: '); for var i := 0 to n - 1 do begin for var j := 0 to m - 1 do a[i, j] := ReadLnInteger('Введите элемент массива: '); a[i, m] := k; end; for var i := 0 to n - 1 do begin var j := 0; while k <> a[i, j] do inc(j); if j <> m then writeln('Строка: ', i, '; элемент находится в столбце: ', j) else writeln('В строке №', i, ' искомого элемента нет'); end; END. |
04.07.2020, 16:53 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Зачастую можно найти решение сразу, если обратить внимание на похожие темы Перевод с Pascal на СИ Перевод c C++ на Pascal Перевод win 7 |
04.07.2020, 19:08 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Уважаемая Маша, а синтаксисом C++ Вы владеете? Если да, то постараюсь Вам помочь, просто изложив то, что представлено в этой программе, а дальше уж Вы сами. Между прочим, это, увы, не Pascal в классическом смысле, а Pascal ABC.NET, язык, в который впихнуты СИ-подобные структуры. Ну ладно, короче говоря, так:
1. Объявляется двумерный целочисленный массив неопределённой размерности (классический Pascal такого не умеет, если только через динамические структуры-указатели). 2. Вводится количество строк (n) и количество столбцов (m). Сразу отмечу, что реально программа работает с количеством столбцов m+1, т.е. от 0 до m. 3. Стандартно двойным циклом от 0 до n-1 по строкам и от 0 до m-1 по столбцам с подсказкой вводятся значения элементов матрицы; причем тело цикла по строкам содержит ещё один дополнительный оператор, которым последнему элементу строки присваивается значение k. Таким образом, все элементы последнего столбца одинаковы и равны k. 4. Ищем совпадения. Делаем цикл по строкам (от 0 до n-1), а в нём цикл с предусловием по столбцам, прерывающийся, когда элемент строки совпадёт с k. Если номер столбца такого элемента меньше m, то выводим номера строки и столбца, если этот номер равен m, то пишем, что искомого элемента в строке нет. Как-то так. К сожалению, на C++, да и вообще на C, не пишу. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Метки |
c++, pascal |
|
|