ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

24.11.2009, 17:40
|
|
Познающий
Регистрация: 13.10.2009
Сообщений: 63
Провел на форуме: 373897
Репутация:
13
|
|
Сообщение от МongBa†
mobilka
заменить весь текст в мемо Memo1.Text:=s;
либо добавить строку Memo1.Lines.Add(s);
спасибо. а как в listbox вывести?
разобрался- Listbox1.Items.Add(s);
|
|
|

24.11.2009, 18:36
|
|
Познающий
Регистрация: 12.08.2009
Сообщений: 32
Провел на форуме: 482943
Репутация:
0
|
|
[Pascal]
Помогите доделать программу:
Задание звучит так:
Упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов каждой строке.
Препод сказал, что там надо вконце написать какое то условие и присовить и уже вывести отсортированную матрицу, а я хз как сделать
Код:
program matr1;
uses crt;
const n=5;
const m=10;
type s=array[1..n,1..m] of integer;
const a:s=((1,1,1,1,1,6,7,8,9,10),
(1,2,2,2,5,6,7,8,9,10),
(1,2,3,3,5,6,7,8,9,10),
(1,7,7,7,7,7,7,7,7,10),
(1,2,3,7,7,7,7,7,7,10));
var i,j,gl,loc,r,x,k:integer;
b: array[1..n] of integer;
begin
clrscr;
writeln('Исходная матрица:');
for i:=1 to n do
begin
for j:=1 to m do
begin
write(a[i,j]:3);
end;
writeln;
end;
{Подсчет количества одинаковых элементов}
for i:=1 to n do begin
gl:=0;
for j:=1 to m-1 do begin
loc:=1;
for r:=j+1 to m do
if a[i,j]=a[i,r] then loc:=loc+1;
if loc>gl then begin gl:=loc; loc:=0 end;
end;
b[i]:=gl;
end;
for i:=1 to n do write(b[i],' ');
writeln;
for i:=1 to n-1 do begin
x:=b[i]; k:=i;
for j:=i+1 to n do
if b[j]<x then begin x:=b[j]; k:=j end;
b[k]:=b[i]; b[i]:=x;
(Вот здесь чего то нехватает)
end;
for i:=1 to n do write(b[i],' ');
writeln;
readkey;
end.
|
|
|

24.11.2009, 19:21
|
|
Познающий
Регистрация: 03.12.2008
Сообщений: 56
Провел на форуме: 140714
Репутация:
29
|
|
Сообщение от P.A.U.L
[Pascal]
Помогите доделать программу:
Задание звучит так:
Упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов каждой строке.
Препод сказал, что там надо вконце написать какое то условие и присовить и уже вывести отсортированную матрицу, а я хз как сделать
Код:
program matr1;
uses crt;
const n=5;
const m=10;
type s=array[1..n,1..m] of integer;
const a:s=((1,1,1,1,1,6,7,8,9,10),
(1,2,2,2,5,6,7,8,9,10),
(1,2,3,3,5,6,7,8,9,10),
(1,7,7,7,7,7,7,7,7,10),
(1,2,3,7,7,7,7,7,7,10));
var i,j,gl,loc,r,x,k:integer;
b: array[1..n] of integer;
begin
clrscr;
writeln('Исходная матрица:');
for i:=1 to n do
begin
for j:=1 to m do
begin
write(a[i,j]:3);
end;
writeln;
end;
{Подсчет количества одинаковых элементов}
for i:=1 to n do begin
gl:=0;
for j:=1 to m-1 do begin
loc:=1;
for r:=j+1 to m do
if a[i,j]=a[i,r] then loc:=loc+1;
if loc>gl then begin gl:=loc; loc:=0 end;
end;
b[i]:=gl;
end;
for i:=1 to n do write(b[i],' ');
writeln;
for i:=1 to n-1 do begin
x:=b[i]; k:=i;
for j:=i+1 to n do
if b[j]<x then begin x:=b[j]; k:=j end;
b[k]:=b[i]; b[i]:=x;
(Вот здесь чего то нехватает)
end;
for i:=1 to n do write(b[i],' ');
writeln;
readkey;
end.
В массиве b хранится количество самых часто встречающихся одинаковых элементов в строках матрицы. Найди минимальный из элементов этого массива, выведи строку, соответствующую ему. Потом берешь второй по величине элемент и выводишь строку, соответствующую ему. И т.д. до N.
На мой взгляд, было бы удобнее использовать массив записей
Код:
type
TMatrixStrings = record
StringNumber: integer;
Count: integer;
end;
Где count - количество элементов, которые чаще всего повторялись в строке матрицы.
Упорядочить этот массив по полю count, а затем вывести матрицу.
Код:
program matr1;
uses crt;
const n=5;
const m=10;
type s=array[1..n,1..m] of integer;
const a:s=((1,1,1,1,1,6,7,8,9,10),
(1,2,2,2,5,6,7,8,9,10),
(1,2,3,3,5,6,7,8,9,10),
(1,7,7,7,7,7,7,7,7,10),
(1,2,3,7,7,7,7,7,7,10));
type
TMatrixStrings = record
StringNumber: integer;
Count: integer;
end;
var i, j, gl, loc, r, x, k: integer;
b: array[1..n] of TMatrixStrings;
begin
clrscr;
writeln('Исходная матрица:');
for i:=1 to n do
begin
for j:=1 to m do
begin
write(a[i,j]:3);
end;
writeln;
end;
{Подсчет количества одинаковых элементов}
for i:=1 to n do begin
gl:=0;
for j:=1 to m-1 do begin
loc:=1;
for r:=j+1 to m do
if a[i,j]=a[i,r] then loc:=loc+1;
if loc>gl then begin gl:=loc; loc:=0 end;
end;
b[i].count:=gl;
b[i].StringNumber := i;
end;
for i:=1 to n do
write(b[i].count,' ');
writeln;
// сортировка
for i:=1 to n-1 do
begin
x:=b[i].count; k:=i;
for j:=i+1 to n do
if b[j].count<x then
begin
x:=b[j].count;
k:=j;
end;
b[k].count:=b[i].count;
b[i].count:=x;
x := b[i].StringNumber;
b[i].StringNumber := b[k].StringNumber
b[k].StringNumber := x;
end;
// вывод упорядоченной матрицы
for i:=1 to n do
writeln(a[b[i].StringNumber]);
writeln;
readkey;
end.
Писал без паскаля, возможно где-то ошибся.
Последний раз редактировалось StealthMaster; 24.11.2009 в 19:33..
|
|
|

24.11.2009, 20:32
|
|
Познающий
Регистрация: 13.10.2009
Сообщений: 63
Провел на форуме: 373897
Репутация:
13
|
|
помогите написать функцию. нажимаем button1, открывается опендиалог, выбираем файл .txt и выводим содержимое в listbox
|
|
|

24.11.2009, 20:37
|
|
Познающий
Регистрация: 12.05.2009
Сообщений: 45
Провел на форуме: 255342
Репутация:
28
|
|
Сообщение от mobilka
помогите написать функцию. нажимаем button1, открывается опендиалог, выбираем файл .txt и выводим содержимое в listbox
if opendialog.execute then listbox.items.loadfromfile(opendialog.filename);
|
|
|

24.11.2009, 20:55
|
|
Познающий
Регистрация: 13.10.2009
Сообщений: 63
Провел на форуме: 373897
Репутация:
13
|
|
Сообщение от МongBa†
if opendialog.execute then listbox.items.loadfromfile(opendialog.filename);
спасибо. теперь нужно следующее-
имеем файл .txt
в нем информация вида-
[1]
09843075432
[2]
7854325890863216809765434
[3]
65D432
и т.д т.п
нужно выдернуть определенный блок например [2] и его содержимое т.е 7854325890863216809765434 вывести в тот же листбокс
|
|
|

24.11.2009, 22:05
|
|
Познающий
Регистрация: 12.08.2009
Сообщений: 32
Провел на форуме: 482943
Репутация:
0
|
|
StealthMaster, спс за помощь, попробую разобраться  Но тот метод который ты применил, т.е. использовал массив записей, я не знаю... Но попробую все таки разобраться 
|
|
|

24.11.2009, 22:23
|
|
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
Провел на форуме: 724939
Репутация:
108
|
|
Сообщение от mobilka
спасибо. теперь нужно следующее-
имеем файл .txt
в нем информация вида-
[1]
09843075432
[2]
7854325890863216809765434
[3]
65D432
и т.д т.п
нужно выдернуть определенный блок например [2] и его содержимое т.е 7854325890863216809765434 вывести в тот же листбокс
Тебе же написали, за загрузку из файла в листбок отвечает функция
listbox.items.loadfromfile('тут твой путь+имя файла');
Можешь использовать скрытый лист-бокс как буфер, и если тебе нужно 2-ю строку, то бери оттуда вторую строку ListBox2.Items[2] и добавляй ее в свой видимый листбокс.
Код:
ListBox1.Items.Add(ListBox2.Items[2]);
Лучше было бы конечно создавать стринг лист в памяти, но смотри сам.
Последний раз редактировалось =Zeus=; 24.11.2009 в 22:27..
|
|
|

24.11.2009, 22:29
|
|
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
Провел на форуме: 4761503
Репутация:
229
|
|
нужно выдернуть определенный блок например [2] и его содержимое т.е 7854325890863216809765434 вывести в тот же листбокс
"Работа с ini файлами" в гугле
Последний раз редактировалось wolmer; 24.11.2009 в 23:45..
|
|
|

24.11.2009, 23:28
|
|
Познающий
Регистрация: 13.10.2009
Сообщений: 63
Провел на форуме: 373897
Репутация:
13
|
|
Сообщение от =Zeus=
Тебе же написали, за загрузку из файла в листбок отвечает функция
Можешь использовать скрытый лист-бокс как буфер, и если тебе нужно 2-ю строку, то бери оттуда вторую строку ListBox2.Items[2] и добавляй ее в свой видимый листбокс.
Код:
ListBox1.Items.Add(ListBox2.Items[2]);
Лучше было бы конечно создавать стринг лист в памяти, но смотри сам.
блин выдирает не то что нужно. а именно-
в листбокс 2 загружается-
[1]
09843075432
[2]
7854325890863216809765434
[3]
65D432
в листбокс1 выводит вторую строчку-
09843075432
а нужно 7854325890863216809765434
а если файл содержит всего одну строчку то программа вылетает с ошибкой.
p.s заменить [2] на [4] я догадался но это не то что нужно.
Последний раз редактировалось mobilka; 24.11.2009 в 23:39..
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|