Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
33 / 6 / 0
Регистрация: 05.06.2011
Сообщений: 36

Работа с одномерными массивами

13.06.2012, 21:36. Показов 1609. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1. Дан массив целых чисел из n элементов, заполненный случайным образом числами из промежутка [-100,100]. Найти сумму положительных элементов, значения которых меньше 10.
2. Вывести индексы тех элементов, значения которых кратны 3 и 5.
3. Определить, есть ли пара соседних элементов с суммой, равной заданному числу.
---Само задание---
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
unit Unit1; 
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
 
  private
    { private declarations }
  public
    { public declarations }
  end; 
 
var
  Form1: TForm1;
  N:integer;
  M: array of integer;
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
      Randomize;
      N:=StrToInt(Edit5.Text);
      SetLength(M,N);
      Edit1.Text:='';
      For i:=0 to N-1 do
 
      begin
           M[i]:=Round(Sin(Random(100))*100);
           Edit1.Text:=Edit1.Text+' '+IntToStr(M[i]);
      end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
 
  i, sum, index, para, min:integer;
begin
 
      Edit2.Text:='';
      Edit3.Text:='';
      Edit4.Text:='';
      randomize;
      sum:=0;
      index:=0;
      para:=0;
for i:=1 to N-1 do
begin
 
if CheckBox3.Checked Then
if M[i]<=10 Then sum:=sum + M[i]
else
  sum:=sum+0;
if CheckBox1.Checked Then
    if (M[i] mod 3) and (M[i] mod 5) Then
    writeln(M[i]);
if CheckBox2.Checked Then
    If M[i]+M[i+1]=para then write(M[i],'+',M[i+1],' = ',para);
 
end;
 
if CheckBox3.Checked then Edit4.Text:= inttostr(sum);
if CheckBox1.Checked then Edit2.Text:= inttostr(index);
if CheckBox2.Checked then Edit3.Text:= inttostr(para);
 
end;
end.
ругается на 85ую строчку.
unit1.pas(85,21) Error: Boolean expression expected, but got "LongInt"
Подскажите что не так? И вообще... в правильном ли я направлении?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.06.2012, 21:36
Ответы с готовыми решениями:

Работа с одномерными массивами....
№1.Подсчитать сумму элементов находящихся между макс.и мин.элементами массива... Массив:целочисленный. №2.Дан массив вещественных...

Работа с одномерными массивами
Помогите с программами 1. В одномерном массиве заменить его элементы с k1-го по k2-й на те же элементы в обратном порядке. 2. Из...

Работа с одномерными массивами
Необходимо разработать программу позволяющую производить вычисления с элементами массива. Освоить синтаксис объявления одномерных массивов....

5
1085 / 571 / 79
Регистрация: 07.04.2011
Сообщений: 971
Записей в блоге: 2
13.06.2012, 22:46
строку 73,75 и 76 удали не нужны
со строки 77 по 94 делаешь так
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
para:=strtoint(edit5.text);  //через edit5 задаешь число для сравнения
for i:=1 to N-1 do
begin
 
if CheckBox3.Checked Then
if M[i]<=10 Then sum:=sum + M[i];
 
if CheckBox1.Checked Then
    if (M[i] mod 3 = 0) and (M[i] mod 5 = 0) Then
     Edit2.Text:= Edit2.Text +inttostr(i)+#32;        // writeln(M[i]); выводить через edit
 
if CheckBox2.Checked Then
    If (i<>high(m)) and (M[i]+M[i+1] = para) then     //write(M[i],'+',M[i+1],' = ',para);выводить через edit
      Edit3.Text:= Edit3.Text +inttostr(M[i])+'+'+inttostr(M[i+1])+'='+inttostr(para)+#32;
end;
if CheckBox3.Checked then Edit4.Text:= inttostr(sum);
Вроде больше ничего такого не заметил...
1
33 / 6 / 0
Регистрация: 05.06.2011
Сообщений: 36
14.06.2012, 03:10  [ТС]
Спасибо. Программа запускается, но в выводе суммы как и раньше показывает отрицательное число, хотя должен суммировать только положительные и только не больше 10.

Delphi
1
2
if CheckBox3.Checked Then
if M[i]<=10 Then sum:=sum + M[i];
ошибка явно не в этом - здесь все правильно. быть может, ошибка в задаче самого массива?
И еще вопрос. Что означает "+#32"?
P.s. прикрепил исходник.
Вложения
Тип файла: rar laba4.rar (2.60 Мб, 13 просмотров)
0
1085 / 571 / 79
Регистрация: 07.04.2011
Сообщений: 971
Записей в блоге: 2
14.06.2012, 03:19
Цитата Сообщение от Gupi Посмотреть сообщение
ошибка явно не в этом
В этом, но не совсем ошибка, нужно дописать так
Delphi
1
2
if CheckBox3.Checked Then
if (M[i]<=10) and (M[i]>0) Then sum:=sum + M[i];
Цитата Сообщение от Gupi Посмотреть сообщение
Что означает "+#32"?
Знак пробела. Можно было бы написать просто так ' '.(в кавычках пробел)
1
33 / 6 / 0
Регистрация: 05.06.2011
Сообщений: 36
14.06.2012, 03:25  [ТС]
Все прекрасно работает. Спасибо огромное.
Ох лучше сделать пробел в кавычках, а то спалюсь - нам явно такого не показывали ("+#32") -)
0
Мишка Косолапый :)
 Аватар для zuxa-zuxa
285 / 255 / 86
Регистрация: 15.02.2012
Сообщений: 1,511
14.06.2012, 06:55
Цитата Сообщение от Gupi Посмотреть сообщение
3. Определить, есть ли пара соседних элементов с суммой, равной заданному числу.
Заданое число k

Delphi
1
2
3
4
for i:=0 to n do
begin
if m[i]+m[i+1]=k then ShowMessage('есть такая пара чисел');
end;
Но в таком случае будет показывать часто и много сообщение. если таких сумм будет много. исправить это поможет выход из цикла break;

Delphi
1
2
3
4
5
6
7
8
for i:=0 to n do
begin
if m[i]+m[i+1]=k then
begin
ShowMessage('есть такая пара чисел');
break;
end;
end;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.06.2012, 06:55
Помогаю со студенческими работами здесь

Работа с одномерными массивами
Задание: исходные данные задавать с использованием генератора случайных чисел Задано число N, вывести числа 1, 2 ..., N в случайном...

Работа с одномерными массивами
Дан массив А(7). Найти максимальный элемент среди элементов, расположенных между первым нулевым элементом и последним нулевым элементом. ...

Работа с одномерными массивами
Язык программирования: Object Pascal. Среда разработки: Borland Delphi 7. См.вложение:(

Работа с одномерными массивами Delphi
Получить все простые числа среди первых N чисел, начиная с 2, следующим образом: выбрать очередное наименьшее нерассмотренное число i,...

Работа с одномерными массивами в Delphi
Помогите пожалуйста написать программу: отсортировать числа в диапазоне в порядке возрастания числа единичных бит в их двоичном...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru