Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Pascal Сторона основания правильной шестиугольной пирамиды равна а, а высота –h. Найти площадь поверхности и объем пирамиды https://www.cyberforum.ru/ pascal/ thread2769996.html
Сторона основания правильной шестиугольной пирамиды равна а, а высота –h. Найти площадь поверхности и объем пирамиды. Помогите пожалуйста решить задачу в паскале
Найти площадь поверхности и объем пирамиды Pascal
Сторона основания правильной треугольной пирамиды равна а, а высота –h. Найти площадь поверхности и объем пирамиды. Помогите решить задачу в паскале
Pascal вычислить значение функции при произвольных значениях параметров a, b и х
Помогите пожалуйста с задачей и составьте блок схему. Зараннее благодарен.Вот задача: вычислить значение функции при произвольных значениях параметров a, b и х y=y-ax^2+bx
Pascal Превратить сообщение азбуки Морза 64 символа в графическое изображение размером 8*8 здравствуйте, помогите , пожалуйста, с решением задачи : Разработать программу на языке программирования Паскаль. Превратить сообщение азбуки Морза 64 символа в графическое ... https://www.cyberforum.ru/ pascal/ thread2769186.html
Pascal Представить действительное число в нормализованной форме https://www.cyberforum.ru/ pascal/ thread2769176.html
здравствуйте, помогите , пожалуйста, с решением задачи : Составьте программу на языке Pascal для представления введенного отличного от нуля действительного числа в нормализованной форме....
Стрелка вверх в записях операторов Паскаля Pascal
Привет, братва! Подскажите, что это за "стрелочка вверх" в следующем выражении?? Описать имена X и Y так, чтобы в стандарте Паскаля был правильным оператор присваивания X(2 < 3) "стрелка...
Pascal Работа с файлами
Дан файл f, содержащий сведения о багаже пассажиров: ФИО, общий вес багажа. Вывести в файл f1 и на экран сведения о пассажирах, вес багажа которых превышает среднее значение веса багажа по всем...
Pascal Вывести на экран календарь за 2000 год Помогите, пожалуйста, написать программу с выводом календаря за 2000 год. Обязательно используя циклы с заданным числом повторений https://www.cyberforum.ru/ pascal/ thread2768472.html
Pascal Произведение https://www.cyberforum.ru/ pascal/ thread2768109.html
Описать процедуру (функцию), которая по функции f и вектору W=(w1,w2,...wn) дает произведение: \prod_{i=1}^{n}f(w_i)
Pascal Длина слов Словом назовем всякую последовательность букв латинского алфавита длины не более 20, а предложением – всякую последовательность не более чем 30 слов, отделенных друг от друга сериями пробелов.... https://www.cyberforum.ru/ pascal/ thread2768106.html
Pascal Вывести на экран числа от 1 до N "обратной елочкой" https://www.cyberforum.ru/ pascal/ thread2768089.html
Выведите на экран числа от 1 до N «обратной елочкой», т.е. в последней строке одно число, в предпоследней – два, и т.д К примеру вводится число N=12 вывод должен выглядеть так: 11 12 7 8 9 10...
Pascal Неправильно написал функцию Я не знаю как правильно оформлять функцию, может кто подсказать?) var y,a : Integer; function MyFactorial(x: Integer) : Integer ; var i,s : Integer; begin for i:=1 to x do s:=s*i; ... https://www.cyberforum.ru/ pascal/ thread2768013.html
Модератор
Эксперт Pascal/DelphiЭксперт NIX
5691 / 3406 / 2429
Регистрация: 22.11.2013
Сообщений: 9,553
Записей в блоге: 1
16.01.2021, 13:12 0

Функция скопировать элементы одного массива в другой

16.01.2021, 13:12. Просмотров 1377. Ответов 3
Метки (Все метки)

Лучший ответ Сообщение было отмечено Katrinmueller как решение

Решение


Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
type
  TIndex = 0..29;
  TNumbers = array [TIndex] of Integer;
 
function ArrayCopy(
  const First: TNumbers; FirstStart: TIndex; 
  var Second: TNumbers; SecondStart: TIndex; N: Integer): Boolean;
begin
  ArrayCopy:=False;
  if (N>0) and
    (FirstStart       in [Low(TIndex)..High(TIndex)]) and
    (SecondStart      in [Low(TIndex)..High(TIndex)]) and
    (-1+N+FirstStart  in [Low(TIndex)..High(TIndex)]) and
    (-1+N+SecondStart in [Low(TIndex)..High(TIndex)])
  then begin
    for n:=0 to n-1 do Second[SecondStart+n]:=First[FirstStart+n];
    ArrayCopy:=True;
  end else
    WriteLn('*** error: ArrayCopy: wrong parameters');
end;
Добавлено через 9 минут
Если при N=0 ошибки не должно быть:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function ArrayCopy(
  const First: TNumbers; FirstStart: TIndex; 
  var Second: TNumbers; SecondStart: TIndex; N: Integer): Boolean;
begin
  ArrayCopy:=False;
  if (N>=0)
    (FirstStart    in [Low(TIndex)..High(TIndex)]) and
    (SecondStart   in [Low(TIndex)..High(TIndex)]) and
    (N+FirstStart  in [Low(TIndex)..High(TIndex)+1]) and
    (N+SecondStart in [Low(TIndex)..High(TIndex)+1])
  then begin
    for n:=0 to n-1 do Second[SecondStart+n]:=First[FirstStart+n];
    ArrayCopy:=True;
  end else
    WriteLn('*** error: ArrayCopy: wrong parameters');
end;
Добавлено через 1 минуту
Условия первого варианта можно переписать аналогично, без -1.

Вернуться к обсуждению:
Функция скопировать элементы одного массива в другой
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.01.2021, 13:12
Готовые ответы и решения:

Скопировать элементы из одного массива в другой
Пусть описана константа и два типа-массива: const m = 3; type TMas1 = array of real;...

Скопировать элементы одного массива в другой
Добрый день, не могу понять как реализовать копирование правильно (строки 34 - 42). На основе...

Скопировать элементы одного массива в другой без повторений
Здравствуйте! Найдите плиз ошибку в моем Г-коде #include&lt;iostream&gt; #include&lt;time.h&gt;...

Как скопировать четные элементы из одного массива в другой?
нужны именно четные элементы (а не все). элементы первого массива сгенерированы рандомно.

3
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.