Другие языки программирования и технологии
Lazarus. Даны действительные числа a1,a2,.,a2n . Получить: a1,a2n,a2,a2n-1,a3,.,an,an+1
Надо написать программу в лазарусе через 2 мемо и массивы. Своими словами задача: дано четное количество чисел (например, 1 2 3 4 5 6, вводятся в мемо) и после чего они перестраиваются по следующему принципу: первое и последнее число, второе и предпоследнее и т.д (т.е, 1 6 2 5 3 4)
Для решения этой задачи мы можем использовать два компонента визуального программирования в Lazarus: два компонента TMemo и один компонент TButton.
Шаги решения задачи:
Создать два компонента TMemo и один компонент TButton на форме.
Добавить обработчик событий OnClick для кнопки.
Получить введенные числа из TMemo1 и поместить их в массив a.
Создать массив b и заполнить его числами в соответствии с заданным порядком.
Вывести массив b в TMemo2.
Код программы на языке Pascal:
procedure TForm1.Button1Click(Sender: TObject);
var
a, b: array of Real;
i, j, n: Integer;
begin
// Чтение введенных чисел из TMemo1
n := Memo1.Lines.Count;
SetLength(a, n);
for i := 0 to n - 1 do
a[i] := StrToFloat(Memo1.Lines.Strings[i]);
// Заполнение массива b
SetLength(b, n);
j := n - 1;
for i := 0 to n - 1 do
begin
if i mod 2 = 0 then
begin
b[i] := a[i div 2];
end
else
begin
b[i] := a[j];
j := j - 1;
end;
end;
// Вывод массива b в TMemo2
Memo2.Clear;
for i := 0 to n - 1 do
Memo2.Lines.Add(FloatToStr(b[i]));
end;
Шаги решения задачи:
Создать два компонента TMemo и один компонент TButton на форме.
Добавить обработчик событий OnClick для кнопки.
Получить введенные числа из TMemo1 и поместить их в массив a.
Создать массив b и заполнить его числами в соответствии с заданным порядком.
Вывести массив b в TMemo2.
Код программы на языке Pascal:
procedure TForm1.Button1Click(Sender: TObject);
var
a, b: array of Real;
i, j, n: Integer;
begin
// Чтение введенных чисел из TMemo1
n := Memo1.Lines.Count;
SetLength(a, n);
for i := 0 to n - 1 do
a[i] := StrToFloat(Memo1.Lines.Strings[i]);
// Заполнение массива b
SetLength(b, n);
j := n - 1;
for i := 0 to n - 1 do
begin
if i mod 2 = 0 then
begin
b[i] := a[i div 2];
end
else
begin
b[i] := a[j];
j := j - 1;
end;
end;
// Вывод массива b в TMemo2
Memo2.Clear;
for i := 0 to n - 1 do
Memo2.Lines.Add(FloatToStr(b[i]));
end;
Слушай, братан, я тебе помочь могу, но я же не твой наставник по Лазарусу. Вот что ты делаешь: создаешь два мемо, в одном вводишь числа, а в другом выводишь результат. Потом создаешь массив нужного размера, например, в два раза больше введенного количества чисел. Затем пробегаешься циклом от 1 до половины размера массива и переставляешь числа по нужному порядку. Вот тебе код, дальше сам
var
inputMemo, outputMemo: TMemo;
inputArray, outputArray: array of Real;
i, j: Integer;
begin
SetLength(inputArray, inputMemo.Lines.Count);
SetLength(outputArray, inputMemo.Lines.Count);
for i := 0 to inputMemo.Lines.Count - 1 do
inputArray[i] := StrToFloat(inputMemo.Lines.Strings[i]);
j := High(inputArray);
for i := 0 to High(outputArray) do
begin
if i mod 2 = 0 then
begin
outputArray[i] := inputArray[i div 2];
end
else
begin
outputArray[i] := inputArray[j];
Dec(j);
end;
end;
for i := 0 to High(outputArray) do
outputMemo.Lines.Add(FloatToStr(outputArray[i]));
end.
Слушай, братан, я тебе помочь могу, но я же не твой наставник по Лазарусу. Вот что ты делаешь: создаешь два мемо, в одном вводишь числа, а в другом выводишь результат. Потом создаешь массив нужного размера, например, в два раза больше введенного количества чисел. Затем пробегаешься циклом от 1 до половины размера массива и переставляешь числа по нужному порядку. Вот тебе код, дальше сам все разбирай и исправляй:
pascal
Copy code
var
inputMemo, outputMemo: TMemo;
inputArray, outputArray: array of Real;
i, j: Integer;
begin
SetLength(inputArray, inputMemo.Lines.Count);
SetLength(outputArray, inputMemo.Lines.Count);
for i := 0 to inputMemo.Lines.Count - 1 do
inputArray[i] := StrToFloat(inputMemo.Lines.Strings[i]);
j := High(inputArray);
for i := 0 to High(outputArray) do
begin
if i mod 2 = 0 then
begin
outputArray[i] := inputArray[i div 2];
end
else
begin
outputArray[i] := inputArray[j];
Dec(j);
end;
end;
for i := 0 to High(outputArray) do
outputMemo.Lines.Add(FloatToStr(outputArray[i]));
end.
Тут я использовал функцию StrToFloat, чтобы преобразовать строки ввода в числа, а затем циклом заполнял массив outputArray по нужному порядку. Но помни, что код может содержать ошибки, так что лучше самому все проверить и исправить.
var
inputMemo, outputMemo: TMemo;
inputArray, outputArray: array of Real;
i, j: Integer;
begin
SetLength(inputArray, inputMemo.Lines.Count);
SetLength(outputArray, inputMemo.Lines.Count);
for i := 0 to inputMemo.Lines.Count - 1 do
inputArray[i] := StrToFloat(inputMemo.Lines.Strings[i]);
j := High(inputArray);
for i := 0 to High(outputArray) do
begin
if i mod 2 = 0 then
begin
outputArray[i] := inputArray[i div 2];
end
else
begin
outputArray[i] := inputArray[j];
Dec(j);
end;
end;
for i := 0 to High(outputArray) do
outputMemo.Lines.Add(FloatToStr(outputArray[i]));
end.
Слушай, братан, я тебе помочь могу, но я же не твой наставник по Лазарусу. Вот что ты делаешь: создаешь два мемо, в одном вводишь числа, а в другом выводишь результат. Потом создаешь массив нужного размера, например, в два раза больше введенного количества чисел. Затем пробегаешься циклом от 1 до половины размера массива и переставляешь числа по нужному порядку. Вот тебе код, дальше сам все разбирай и исправляй:
pascal
Copy code
var
inputMemo, outputMemo: TMemo;
inputArray, outputArray: array of Real;
i, j: Integer;
begin
SetLength(inputArray, inputMemo.Lines.Count);
SetLength(outputArray, inputMemo.Lines.Count);
for i := 0 to inputMemo.Lines.Count - 1 do
inputArray[i] := StrToFloat(inputMemo.Lines.Strings[i]);
j := High(inputArray);
for i := 0 to High(outputArray) do
begin
if i mod 2 = 0 then
begin
outputArray[i] := inputArray[i div 2];
end
else
begin
outputArray[i] := inputArray[j];
Dec(j);
end;
end;
for i := 0 to High(outputArray) do
outputMemo.Lines.Add(FloatToStr(outputArray[i]));
end.
Тут я использовал функцию StrToFloat, чтобы преобразовать строки ввода в числа, а затем циклом заполнял массив outputArray по нужному порядку. Но помни, что код может содержать ошибки, так что лучше самому все проверить и исправить.
Похожие вопросы
- Даны действительные числа а (1),а (2),...а (2n). Получить: а (1),а (2n),а (2),а (2n-1),а (3),...а (n),а (n+1).
- Даны натуральное число n, действительные числа a1,.,an. Вычислить: |a1|,|a1+a2|,.,|a1+.+an|; delphi
- Помогите!!! с помощью вектора написать кодДаны действительные числа a1...,a30 Получить; а) max (a1+a30,a2+a29,...a15+a16
- Даны натуральные числа N и A1,…, AN. Образовать новые одномерные последовательности B1, …, BN и C1, …, CN
- дан двумерный массив С(3,4).Получите новый массив А путём увеличения всех элементов исходного массива на число С.
- Задача даны числа 1,3,5,7,9,11,13,15 Нужно взять 3 числа и ТОЛЬКО сложением получить 30
- Почему считает всего несколько раз, не проходит все елементьі последовательности от a1 до a2 с шагом dx. Ряд тейлора C++?
- помогите решить задачи на паскале 1Во входном файле дана последовательность чисел. Требуется найти второе по величине чи
- помогите решить задачу Во входном файле дана последовательность чисел , число (количество чисел в после
- C++ Даны три действительных числа. Возвести в квадрат те из них, значения которых неотрицательны.