ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #5671  
Старый 03.03.2010, 20:17
Аватар для REC0N
REC0N
Новичок
Регистрация: 09.10.2009
Сообщений: 2
Провел на форуме:
46567

Репутация: 0
Отправить сообщение для REC0N с помощью ICQ
По умолчанию

Дана матрица NxN.
Помогите вывести номер строки с минимальным число элементов что равны заданному (заданое число вводит пользователь)
Итак, у меня выводит n строк и количество элементов и напротив каждой строки, как вывести лишь минимальную строку?
Вот что наработал:

program matryca;
uses crt;
const nmax=1000;
label 25;

var Matr:array[1..nmax,1..nmax] of integer;
Vec:array[1..nmax] of integer;
n,m,i,j,k,l,min : integer;

begin
25:
write ('Введите количество строк в матрице:');
readln (m);
write ('Введите количество столбцов в матрице:');
readln (n);
if m<>n then begin writeln('Матрица должна быть квадратная! ! !');goto 25; end;


// Ввод матрицы

writeln(' ');
writeln(' -------------------- ');
writeln(' Ввод матрицы ');
writeln(' -------------------- ');
writeln(' ');

for i:=1 to n do
for j:=1 to m do begin

write ('Введите элемент матрицы A(',i,';',j,'):');
readln (Matr[i,j]);
end;

// Вывод матрицы

for i:=1 to n do begin
write('(',i,'-я строка) ');
for j:=1 to m do
write(Matr[i,j],' ');
writeln;
end;

// Введення числа


write('Введите число: ');
read(k);

for i:=1 to n do begin vec[i]:=0;
for j:=1 to m do begin

if k=matr[i,j] then vec[i]:=vec[i]+1
end;


end;

for i:=1 to n do begin
write('Количество введенных пользователем символов в ', i,'-й строчке: ', vec [i]);
writeln;
end;

end.
Код:
program matryca;    uses crt;    const nmax=1000;    label 25;      var Matr:array[1..nmax,1..nmax] of integer;        Vec:array[1..nmax] of integer;        n,m,i,j,k,l,min : integer;      begin          25:          write ('Введите количество строк в матрице:');          readln (m);          write ('Введите количество столбцов в матрице:');          readln (n);          if m<>n then begin writeln('Матрица должна быть квадратная! ! !');goto 25; end;              //  Ввод матрицы            writeln('                            ');          writeln('       -------------------- ');          writeln('           Ввод матрицы     ');          writeln('       -------------------- ');          writeln('                            ');                    for i:=1 to n do                  for j:=1 to m do begin            write ('Введите элемент матрицы A(',i,';',j,'):');                  readln (Matr[i,j]);          end;            // Вывод матрицы            for i:=1 to n do begin          write('(',i,'-я строка) ');          for j:=1 to m do                           write(Matr[i,j],' ');                           writeln;          end;            // Введення числа                        write('Введите число: ');                    read(k);                               for i:=1 to n do begin vec[i]:=0;                             for j:=1 to m do begin                                                          if k=matr[i,j] then vec[i]:=vec[i]+1                             end;                                                   end;                      for i:=1 to n do begin                    write('Количество введенных пользователем символов в ', i,'-й строчке: ', vec [i]);                    writeln;                    end;    end.
P.S:Делал на PascalABC

Последний раз редактировалось REC0N; 03.03.2010 в 20:28..
 
Ответить с цитированием

  #5672  
Старый 03.03.2010, 22:08
Аватар для fenixelite
fenixelite
Участник форума
Регистрация: 07.02.2010
Сообщений: 189
Провел на форуме:
870084

Репутация: 79
Отправить сообщение для fenixelite с помощью ICQ
По умолчанию

Ну а что тут сложного? Сравни кол-во повторенией в строках и выведи строку с минимальным количеством.

P.S и вообще ABC - зло
 
Ответить с цитированием

  #5673  
Старый 04.03.2010, 01:28
Аватар для NTFF
NTFF
Новичок
Регистрация: 09.12.2009
Сообщений: 23
Провел на форуме:
42989

Репутация: 0
По умолчанию

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

как это все делать не знаю потому как преподаватель заболел а другой требует мол я ниче не знаю мне надо чтоб было сдано


program Records;
uses
crt, strings;
const
max = 100; {максимальное допустимое количество записей в массиве}
type
{Тип данных для описания книги}
TBook = record
name : string[40]; {название}
author : string[20]; {автор}
style : string[20]; {жанр}
tom : byte; {количество томов}
year : word; {год выпуска}
end;

{Тип данных "Каталог книг" - массив из 100 книг}
TBooks = array [1..max] of TBook;

{Процедура рисование окна без рамки.
Вх.данные:
(x1,y1) - координаты верхнего левого угла окна,
(x2,y2) - координаты нижнего правого угла окна,
tc - цвет текста,
c - цвет фона окна}
procedure SngWindow(x1,y1,x2,y2,tc,c : byte);
begin
window(x1,y1,x2,y2);
textbackground(c);
textcolor(tc);
clrscr;
end;

{Процедура рисование окна с рамкой шириной в 1 символ.
Вх.данные:
(x1,y1) - координаты верхнего левого угла окна,
(x2,y2) - координаты нижнего правого угла окна,
tc - цвет текста,
c1 - цвет рамки,
c2 - цвет фона окна}
procedure DblWindow(x1,y1,x2,y2,tcolor, c1, c2 : byte);
begin
window(x1,y1,x2,y2);
textbackground(c1);
clrscr;
window(x1+1,y1+1,x2-1,y2-1);
textbackground(c2);
textcolor(tcolor);
clrscr;
end;

{Функция для отображения главного меню и выбора одного из его пунктов.
Функция возвращает значение от 1 до 5.}
function Menu : byte;
var
punkt : byte; {номер выбранного пункта меню}
er : integer; {код ошибки при преобразовании строки в число}
s : string; {строка для проверки вводимого номера пункта меню}
begin
{Закрасить весь экран черным цветом}
SngWindow(1,1,80,25,WHITE,BLACK);
{Нарисовать рабочее окно}
SngWindow(1,6,80,25,WHITE,BLUE);
{цикл выполняется до тех пор, пока пользователь не введет число от 1 до 5}
repeat
{Нарисовать окно для главного меню}
DblWindow(1,1,80,5,YELLOW,MAGENTA,BLUE);
writeln;
write(' 1.Добавить 2.Удалить 3.Печать 4.Поиск 5.Выход');
readln(s); {ввод номера пункта меню}
val(s,punkt,er);
until (er=0) and (punkt>=1) and (punkt<=5);
Menu := punkt; {возврат значения функции}
end;
{Функция для отображения подменю для поиска и выбора одного из его пунктов.
Функция возвращает значение от 1 до 4.}
function SubMenu : byte;
var
punkt : byte; {номер выбранного пункта меню}
er : integer; {код ошибки при преобразовании строки в число}
s : string; {строка для проверки вводимого номера пункта меню}
begin
{Закрасить весь экран черным цветом}
SngWindow(1,1,80,25,WHITE,BLACK);
{Нарисовать рабочее окно}
SngWindow(1,6,80,25,WHITE,BLUE);
{цикл выполняется до тех пор, пока пользователь не введет число от 1 до 4}
repeat
{Нарисовать окно для главного меню}
DblWindow(1,1,80,5,YELLOW,MAGENTA,BLUE);
writeln;
write(' 1.Поиск по названию 2.Поиск по автору 3.Поиск по году 4.Выход');
readln(s); {ввод номера пункта меню}
val(s,punkt,er);
until (er=0) and (punkt>=1) and (punkt<=4);
SubMenu := punkt; {возврат значения функции}
end;

{Процедура добавления книги в каталог книги.
Книга добавляется в конец каталога.
Вх.данные:
mas - каталог книг;
n - количество книг в каталоге;
size - максимальное возможное количество книг в каталоге;
Вых.данные:
если каталог полностью еще не заполнен, то в него будет добавлена
книга и n увеличится на 1, в противном случае - книга не добавляется.
mas - каталог книг;}
procedure AddRecord(var mas : TBooks; var n : byte; size : byte);
var
s : String; {строка для ввода числовых значений}
er : integer; {код ошибки при преобразовании строки в число}
begin
{проверка: есть ли еще место для новой книги в каталоге}
if (n+1 <= size) then
begin
inc(n); {увеличение количества книг в каталоге}
{ввод названия, автора и жанра книги}
write('Название книги =>'); readln(mas[n].name);
write('Автор =>'); readln(mas[n].author);
write('Жанр =>'); readln(mas[n].style);
{ввод количества томов (>0)}
repeat
write('Количество томов =>');
readln(s);
val(s,mas[n].tom,er);
until (er=0) and (mas[n].tom>0);
{ввод года издания (в диапазоне [1900;2008])}
repeat
write('Год издания =>');
readln(s);
val(s,mas[n].year,er);
until (mas[n].year >= 1900) and (mas[n].year<=2008);
writeln('Книга добавлена в каталог!');
end
else writeln('Недостаточно места в каталоге!');
end;

{Процедура печати информации о книге под номером i в каталоге}
procedure PrintRecord(var mas : TBooks; i : integer);
begin
write(i:3);
with mas[i] do
begin
write(name:23); write(author:20);
write(style:10); write(tom:10);
write(year:12);
writeln;
end;
end;

{Процедура печати содержимого всего каталога.
Вх.данные:
mas - каталог книг,
n - количество книг в каталоге}
procedure Print(var mas : TBooks; n : integer);
var
i : integer; {номер книги в каталоге}
begin
writeln('#':3,'Название':23,'Автор':2 0,'Жанр':10,'Тома':10,'Год издания':12);
for i:=1 to n do
PrintRecord(mas,i);
end;

{Процедура удаления книг из каталога под названием bname.
Вх.данные:
mas - каталог книг,
n - количество книг в каталоге,
bname - название книг, которые необходимо удалить из каталога
Вых.данные:
если в каталоге имеются книги под название bname информация о
них будет распечатана и они будут удалены из каталога и
количество книг в каталоге n уменьшиться на количество удаленных книг;
если в каталоне нет книг под заданным названием на экран
не будет выводиться информация о книгах.}
procedure DelRecordByName(var mas : TBooks; var n : byte; bname : string);
var
i,j : integer; {номера книг в каталоге}
begin
writeln('#':3,'Название':23,'Автор':2 0,'Жанр':10,'Тома':10,'Год издания':12);
{цикл для просмотра всех книг каталога}
for i:=1 to n do
begin
with mas[i] do
{книга под номером i имеет название bname,
следовательно ее необходимо удалить из каталога}
if (name = bname) then
begin
PrintRecord(mas,i); {печать информации об удаляемой книге}
{цикл для смещения книг на одну позицию влево для
удаления книги из каталога}
for j:=i+1 to n do
mas[j-1] := mas[j];
{количество книг в каталоге уменьшилось на 1}
dec(n);
end;
end;
end;

{Процедура поиска книг по названию.
Вх.данные:
mas - каталог книг;
n - количество книг в каталоге;
bname - название книги, по которому необходимо осуществлять поиск книг;
Вых.данные: на экране монитора в табличном виде распечатается информация о
книгах с названием bname.}
procedure FindByName(var mas : TBooks; n : integer; bname : string);
var
i : integer; {номер книги}
begin
writeln('#':3,'Название':23,'Автор':2 0,'Жанр':10,'Тома':10,'Год издания':12);
{просмотр всех книг в каталоге}
for i:=1 to n do
with mas[i] do
{название книги совпадает с заданным названием bname}
if name=bname then PrintRecord(mas,i);
end;

{Процедура поиска книг по автору и жанру.
Вх.данные:
mas - каталог книг;
n - количество книг в каталоге;
ba - автор книги;
bst - жанр книги;
Вых.данные: на экране монитора в табличном виде распечатается информация о
книгах, которые написал автор ba в жанре bst.}
procedure FindByAuthor(var mas : TBooks; n : integer; ba, bst : string);
var
i : integer; {номер книги}
begin
writeln('#':3,'Название':23,'Автор':2 0,'Жанр':10,'Тома':10,'Год издания':12);
{просмотр всех книг в каталоге}
for i:=1 to n do
with mas[i] do
{автор книги и жанр совпадают с заданными автором ba и жанром bst}
if (author=ba) and (style=bst) then PrintRecord(mas,i);
end;

{Процедура поиска книг по году издания.
Вх.данные:
mas - каталог книг;
n - количество книг в каталоге;
[a,b] - период издания книг;
Вых.данные: на экране монитора в табличном виде распечатается информация о
книгах, которые были изданы в период годов от а до b.}
procedure FindByYear(var mas : TBooks; n : integer; a, b : word);
var
i : integer; {номер книги}
begin
writeln('#':3,'Название':23,'Автор':2 0,'Жанр':10,'Тома':10,'Год издания':12);
{просмотр всех книг в каталоге}
for i:=1 to n do
with mas[i] do
{год издания книги находиться в диапазоне от а до b}
if (a<=year) and (year<=b) then PrintRecord(mas,i);
end;

var
b : TBooks; {каталог книг}
n : byte; {количество книг в каталоге}
punkt : byte; {номер пункта меню}
subpunkt : byte; {номер подпункта в пункте меню Поиск}
bookname, {название книги}
a, {автор книги}
st : string; {жанр книги}
y1,y2 : word; {диапазон годов издания книг}
s : string; {строка для ввода числовых значений}
er : integer; {код ошибки при переводе строки в число}

begin
n := 0; {в каталоге нет книг}
SngWindow(1,1,80,25,WHITE,BLACK);
repeat
punkt:= Menu; {выбор пункта меню}
case (punkt) of
1:begin {пункт Добавление книги}
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' ДОБАВЛЕНИЕ КНИГИ В КАТАЛОГ');
AddRecord(b,n,max); {добавление книги в каталог b}
readkey;
end;
2:begin {пункт Удаление книги}
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' УДАЛЕНИЕ КНИГ ПО НАЗВАНИЮ');
{Задание значения ключа - название книги}
write('Название книги =>');
readln(bookname);
{удаление из каталога книг по названию книги}
DelRecordByName(b,n,bookname);
readkey;
end;
3:begin {печать каталога книг}
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' КАТАЛОГ КНИГ');
Print(b,n); {печать в табличном виде информации о книгах в каталоге}
readkey;
end;
4:begin {пункт Поиск книг}
repeat
subpunkt := SubMenu; {выбор пункта меню по поиску книг}
case (subpunkt) of
1:begin {пункт Поиск по названию книги}
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' КНИГИ ПО НАЗВАНИЮ ');
{задание ключа поиска по названию книги}
write('Название книги =>');
readln(bookname);
{поиск книг в каталоге b по названию bookname}
FindByName(b,n,bookname);
readkey;
end;
2:begin {пункт Поиск по автору и жанру}
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' КНИГИ ПО АВТОРУ И ЖАНРУ');
{задание ключа поиска по автору}
write('Автор книги =>');
readln(a);
{задание ключа поиска по жанру}
write('Жанр книги =>');
readln(st);
{поиск книг в каталоге b по автору и жанру}
FindByAuthor(b,n,a,st);
readkey;
end;
3:begin {поиск по году издания}
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' КНИГИ ПО ГОДУ ИЗДАНИЯ ');
{цикл задания ключа поиска по году издания}
repeat
{задание ключа поиска - минимальный год}
repeat
write('Минимальный год =>');
readln(s);
val(s,y1,er);
until (er=0) and (y1>=1900); {год издания должен быть >= 1900}
{задание ключа поиска - максимальный год}
repeat
write('Максимальный год =>');
readln(s);
val(s,y2,er);
until (er=0) and (y2<=2008); {год издания должен быть <= 2008}
until (y1<y2);
{поиск книги по году издания [y1,y2] в каталоге b}
FindByYear(b,n,y1,y2);
readkey;
end;
end;
until (subpunkt = 4); {выход из подменю поиска при выборе пункта 4}
end;
end;
until (punkt = 5); {выход из программы при выборе пункта меню 5}
SngWindow(1,1,80,25,WHITE,BLACK);
end.


это написано на паскале что и как сдесь я не знаю нам ток сказали что б было на подобии
 
Ответить с цитированием

  #5674  
Старый 04.03.2010, 06:09
Аватар для RumShun
RumShun
Постоянный
Регистрация: 27.10.2008
Сообщений: 380
Провел на форуме:
1249808

Репутация: 149
Отправить сообщение для RumShun с помощью ICQ
По умолчанию

так тебе через записи или через списки надо? это разные вещи(ты через записи сделал).
закинь свой исходник в теги, и я не понял всетаки что тебе надо? код не работает?
 
Ответить с цитированием

  #5675  
Старый 04.03.2010, 15:50
Аватар для NTFF
NTFF
Новичок
Регистрация: 09.12.2009
Сообщений: 23
Провел на форуме:
42989

Репутация: 0
По умолчанию

мне надо этот код переделать под мое условие

Разработать справочник пассажирских поездов с полями: номер поезда, станции отправления и назначения, время в дороге, категория поезду. Реализовать подпрограммы поиска: 1) по станциям отправления и назначения, 2) по категории поезду
 
Ответить с цитированием

  #5676  
Старый 05.03.2010, 00:51
Аватар для Андрей021
Андрей021
Новичок
Регистрация: 03.08.2009
Сообщений: 21
Провел на форуме:
680114

Репутация: 2
Отправить сообщение для Андрей021 с помощью ICQ
По умолчанию

Как получить путь к файлу в консольном приложении, как в ГУИ Application.ExeName?
 
Ответить с цитированием

  #5677  
Старый 05.03.2010, 00:55
Аватар для wolmer
wolmer
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
Провел на форуме:
4761503

Репутация: 229
По умолчанию

Цитата:
Сообщение от Андрей021  
Как получить путь к файлу в консольном приложении, как в ГУИ Application.ExeName?
ParamStr(0)
 
Ответить с цитированием

  #5678  
Старый 05.03.2010, 20:12
Аватар для kohanov4
kohanov4
Новичок
Регистрация: 02.03.2010
Сообщений: 21
Провел на форуме:
16450

Репутация: 0
По умолчанию

Парни как можно вывести изображение на рабочий стол поверх всех окон с помощью например Delphi (WinAPI)???Очень надо. заранее спасибо
 
Ответить с цитированием

  #5679  
Старый 05.03.2010, 20:29
Аватар для Tor Bel
Tor Bel
Новичок
Регистрация: 13.12.2008
Сообщений: 5
Провел на форуме:
11230

Репутация: 0
По умолчанию

Цитата:
Сообщение от kohanov4  
Парни как можно вывести изображение на рабочий стол поверх всех окон с помощью например Delphi (WinAPI)???Очень надо. заранее спасибо
Так поверх всех окон или на рабочий стол?
 
Ответить с цитированием

  #5680  
Старый 05.03.2010, 22:12
Аватар для xafon
xafon
Познающий
Регистрация: 02.12.2009
Сообщений: 37
Провел на форуме:
195146

Репутация: 15
По умолчанию

Код:
var
 s: string;
begin
 s:=idhttp1.get('http://site/file.dat');
 //Допустим будет в s слово: message_hello_:)
 //Единственное что тут могут регистры мешать (но это дело поправимое  :) )
 if pos('message', s)<>0 then
  begin
    showmessage(copy(s, pos('message_', s)+length('message_'),
                        length(s)-length('message ')-3));
  end;
end;
на winsock'e, как это будет выглядеть?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/WPAN/WLAN 2564 06.04.2026 23:31
[ *NIX ] Задай вопрос - получи ответ. Xszz *nix 1547 15.06.2010 15:41
[jQuery] - Задай вопрос, получи ответ Isis PHP, PERL, MySQL, JavaScript 62 25.12.2009 03:25
ЕсТь ВоПрос Guma Чаты 4 26.10.2005 21:48



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ