Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 20.11.2015
Сообщений: 11
1

Среди чисел заданной строки матрицы найти такое, которое принадлежит наибольшему количеству столбцов

29.12.2015, 19:42. Просмотров 521. Ответов 0
Метки нет (Все метки)

Нужна помощь в переписание подпрограммы, она в данный момент написанна как процедура если я не ошибаюсь, ее над изменить что бы она выполняла следующее---->
Среди чисел заданной строки таблицы найти такое, которое принадлежит наибольшему количеству столбцов таблицы



Pascal
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
uses crt;
{$R-}
type
     TElem=single;
     TArr=array[1..1] of TElem;
     PArr=^TArr;
     TMas=array[1..1] of PArr;
     PMas=^TMas;
     FSingle=file of single;
     TTen=1..10;
 
var
     a: PMas; //a-динамический массив
     width, height, res, i, j,flag: integer;//width-колличество строчек,height-колличество столбцов
     p1,p2: TTen;
     inp, oup: FSingle;
     err: boolean;
     need1, need2: longint;
     filename: string;
     asd:telem;
 
 
function BoolTest(const value: boolean): string;
 
const Values: array[boolean] of string = ('Нет', 'Да');
begin
BoolTest := Values[value];
end;
 
procedure Proced(var a:PMas;width,height:integer;var res:integer;var ce:boolean);
 
{процедура определяет значение и положение в таблице элемента,для которого сумма элементов,
лежащих не выше и не левее его ,максимальна.
 входные параметры:   а-указатель на таблицу(по ссылке),
                      width,heidht-фактические размеры таблицы(по значению),
 выходные параметры:  res-элемент,для которого сумма эллементов,лежащих не выше
 и не левее его,максимальна.
 ce-false,если ошибка,true,если всё правильно}
 
var i,j,k:integer;bool:boolean;
begin
if (width<0) or (height<0) or (a=nil) then ce:=false
else begin
res:=0;
for j:=1 to height do begin
    bool:=true;
    for i:=1 to width-1 do begin
       for k:=i+1 to width do begin
          if a^[i]^[j]=a^[k]^[j] then bool:=false
 
       end ;
 
    end;
if bool then inc(res);
end;
ce:=true;
end;
end;
 
 
begin
clrscr;
repeat
clrscr;
writeln;
writeln(' Меню пользователя');
writeln;
writeln('1. Задать размеры таблицы');
writeln('2. Заполнить таблицу случайными числами');
writeln('3. Заполнить таблицу с клавиатуры');
writeln('4. Создать файл элемнтов таблицы ');
writeln('5. Заполнить таблицу из файла');
writeln('6. Просмотреть таблицы');
writeln('7. Выполнить подпрограмму');
writeln('8. Завершеть работу программы');
writeln;
write('Выберите пункт меню: ');
     repeat
     {$I-} readln(p1); {$I+}
     until (IORESULT=0) and ((p1>=1) and (p1<=8));
 
case p1 of
     1:begin
       clrscr;
       writeln('1. Задание размеров таблицы');
       if a<>NIL then begin {если указатель не пуст,то освобождаем память}
         for i:=1 to width do FreeMem(a^[i], need2);
         FreeMem(a, need1);
         a := NIL;
       end;
       repeat
       write('Введите колличество строчек');
       {$I-}readln(width);{$I+}
       until (IORESULT=0);
       repeat
       write('Введите колличество столбиков ');
       {$I-}readln(height);{$I+}
       until (IORESULT=0);
 
       need1 := longint(width) * sizeof(PArr);{считаем сколько нам памяти нужно}
       need2 := longint(height) * sizeof(TElem);
       GetMem(a, need1);{выделяем память}
       for i:=1 to width do GetMem(a^[i], need2);
       flag:=1;
       writeln;
       writeln('Для возврата в главное меню нажмите ENTER');
       end;
 
     2:begin
       clrscr;
       randomize;
       writeln('2.Заполнение таблицы случайными числами');
       if flag=0 then writeln('Размеры не заданы')
       else begin
       for i:=1 to width do
       for j:=1 to height do begin
          a^[i]^[j]:=random(100);
       end;
       writeln('Выполнено');flag:=2; end;
       writeln;
       writeln('Для возврата в главное меню нажмите ENTER');
       end;
 
     3:begin
       clrscr;
       writeln('3.Заполнение таблицы с клавиатуры');
       if flag=0 then writeln('Размеры не заданы')
       else begin
       for i:=1 to width do
       for j:=1 to height do begin
          repeat
          write('а[', i, ', ', j, '] = ');
          {$I-}read(a^[i]^[j]);{$I+}
          until (IORESULT=0);
       end;
        flag:=2;
       writeln('Выполнено'); end;
       writeln;
       writeln('Для возврата в главное меню нажмите ENTER');
       end;
 
     4:begin
 
 
             write('Введите имя файла');
             readln(filename);
             Assign(oup, filename);//ф.п. oup связывается с именм файла
             {$I-} rewrite(oup); {$I+}//инициирует запись информации в файл
             if IORESULT = 0 then begin
             asd:=width;
             write(oup, asd);
             asd:=height;
             write(oup, asd);
             writeln('Просмотр');
               for i:=1 to width do begin
                  for j:=1 to height do begin
                    write(a^[i]^[j]:8:2);
                     write(oup, a^[i]^[j]);
                  end;
              writeln;
              end;
 
             close(oup);
              end;
             filename := '';
             writeln;
 
 
 
 
      writeln;
      writeln('Для возврата в главное меню нажмите ENTER');
      end;
 
     5:begin
       clrscr;
       writeln('5.Заполнеие таблицы из файла');
      { if flag<>3 then writeln('Файл не создан')
       else} begin
       if a <> NIL then begin
        need1 := longint(width) * longint(height) * sizeof(PArr);
       need2 := longint(height) * sizeof(TElem);
         for i:=1 to width do FreeMem(a^[i], need2);
         FreeMem(a, need1);
         a := NIL;
       end;
       write('Введите имя файла ');
       readln(filename);
 
       assign(inp, filename);
       {$I-} reset(inp); {$I+}//чтение файла
       if IORESULT = 0 then begin
       read(inp, asd);
       width:=round(asd);
       read(inp, asd);
       height:=round(asd);
 
       need1 := longint(width) * longint(height) * sizeof(PArr);
       need2 := longint(height) * sizeof(TElem);
       GetMem(A, need1);
       for i:=1 to width do GetMem(a^[i], need2);
 
       for i:=1 to width do begin
          for j:=1 to height do begin
          {$I-} read(inp, a^[i]^[j]); {$I+}
          if IORESULT = 0 then write(a^[i]^[j]:8:2);
          end; // while [j]
 
       end; // while [i]
 
 
       {$I-} close(inp); {$I+}
       filename := '';
       flag:=2; end else         writeln('no');
       writeln('Для возврата в главное меню нажмите ENTER');
       end;
       end;
 
     6:begin
       clrscr;
       writeln('6.Просмотр таблицы');
       if flag<>2 then writeln('Таблица не создана')
       else begin
       for i:=1 to width do begin
          for j:=1 to height do write(a^[i]^[j]:8:2);
          writeln;
       end; end;
       writeln;
       writeln('Для возврата в главное меню нажмите ENTER');
       end;
 
     7:begin
       clrscr;
       writeln('7.Выполнение подпрограммы');
       if flag<>2 then writeln('Таблица не создана.Невозможно выполнить подпрограмму')
       else begin
       Proced(a, width, height,res,err);
       writeln('Правильно ли выполнилась программа?',BoolTest(err));
       writeln('Ответ:', res);
       end;
       writeln;
       writeln('Для возврата в главное меню нажмите ENTER');
       end;
 
end; //case
 
if p1<>8 then readln;
until p1=8; //repeat
clrscr;
writeln('Завершение работы');  //освобождаем память
for i:=1 to width do FreeMem(a^[i], need2); //удаляем все строки
FreeMem(a, need1);//удаляем указатели на них
a := NIL;
 
{$R+}
writeln('Для продолжения нажмите ENTER');
readln;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.12.2015, 19:42
Ответы с готовыми решениями:

В заданной строке таблицы найти такое значение, которое принадлежит наибольшему количеству столбцов таблицы
Мне нужно было написать программу, которая использует двумерный динамический массив. а) Сохраняет...

Среди точек первого множества найти такую, которая принадлежит наибольшему количеству множеств
На плоскости задано множеств по точек в каждом. Среди точек первого множества найти такую,...

Среди точек первого множества найти такую,которая принадлежит наибольшему количеству множеств.
Мне нужно написать эту программу,я совершенно не знаю как это сделать.Знаю только,что пишется она с...

Найти элемент строки, принадлежащий наибольшему количеству столбцов
моя цель )) наити элемент строки принадлежащий наибольшему количеству столбцов правильно ли...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.12.2015, 19:42

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Найти точку, которая принадлежит наибольшему количеству отрезков
Дано N отрезков на прямой. Найти точку, принадлежащую наибольшему количеству отрезков. Отрезок...

Наити элемент строки принадлежащий наибольшему количеству столбцов
наити элемент строки принадлежащий наибольшему количеству столбцов )) желательно без применения...

Среди столбцов заданной целочисленной матрицы найти столбец с минимальным произведением элементов
уже 2 дня с ней мучаюсь. никак. еще и условие непонятное. вот она: Среди столбцов заданной...

Среди столбцов заданной целочисленной матрицы найти столбец с минимальным произведением элементов
Среди столбцов заданной целочисленной матрицы найти столбец с минимальным произведением элементов....


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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