Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
Помогите сделать двух связный список(или переобразовать существующий если такое возм) |

25.03.2010, 19:49
|
|
Новичок
Регистрация: 09.12.2009
Сообщений: 23
Провел на форуме: 42989
Репутация:
0
|
|
Помогите сделать двух связный список(или переобразовать существующий если такое возм)
Помогите с реализацией двухсвязного списка в паскале
может есть вариант как-то преобразовать существующий список если это возможно то вот код:
Если нет то вот условие
Разработать справочник пассажирских поездов с полями: номер поезда, станции отправления и назначения, время в дороге, категория поезду. Реализовать подпрограммы поиска: 1) по станциям отправления и назначения, 2) по категории поезду.
program Records;
uses
crt, strings;
const
max = 100;
type
Ttrain = record
Otpravlenie : string[40];
Pribitie : string[40];
Category : string[10];
Time : string[10];
Number : string[10];
end;
Ttrains = array [1..max] of Ttrain;
procedure SngWindow(x1,y1,x2,y2,tc,c : byte);
begin
window(x1,y1,x2,y2);
textbackground(c); textcolor(tc);
clrscr;
end;
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;
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);
repeat
DblWindow(1,1,80,5,YELLOW,MAGENTA,BLUE);
writeln;
write(' 1.ADD 2.DELETE 3.PRINT 4.SEARCH 5.EXIT');
readln(s);
val(s,punkt,er);
until (er=0) and (punkt>=1) and (punkt<=5);
Menu := punkt;
end;
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);
repeat
DblWindow(1,1,80,5,YELLOW,MAGENTA,BLUE);
writeln;
write(' 1.Otpravlenie 2.Pribitie 3.Number 4.Exit');
readln(s);
val(s,punkt,er);
until (er=0) and (punkt>=1) and (punkt<=4);
SubMenu := punkt;
end;
procedure AddRecord(var mas : Ttrains; var n : byte; size : byte);
var
s : String;
er : integer;
begin
if (n+1 <= size) then
begin
inc(n);
write('Point of otpravlenie =>'); readln(mas[n].Otpravlenie);
write('Point of pribitie =>'); readln(mas[n].Pribitie);
write('Category of train =>'); readln(mas[n].Category);
write('Time in the way =>'); readln(mas[n].Time);
write('Number of train =>'); readln(mas[n].number);
writeln('Record is saving....');
end
else writeln('ERROR record is lost');
end;
procedure PrintRecord(var mas : Ttrains; i : integer);
begin
write(i:3);
with mas[i] do
begin
write(Otpravlenie:23); write(Pribitie:20);
write(Category:10); write(Time:10);
write(Number:12);
writeln;
end;
end;
procedure Print(var mas : Ttrains; n : integer);
var
i : integer;
begin
writeln('#':3,'Otpravlenie':23,'Pribitie':20,'Cate gory':10,'Time':10,'Number':12);
for i:=1 to n do
PrintRecord(mas,i);
end;
procedure DelRecordByotpr(var mas : Ttrains; var n : byte; botpr : string);
var
i,j : integer;
begin
writeln('#':3,'Otpravlenie':23,'Pribitie':20,'Cate gory':10,'Time':10,'Number':12);
for i:=1 to n do
begin
with mas[i] do
if (Otpravlenie = botpr) then
begin
PrintRecord(mas,i);
for j:=i+1 to n do
mas[j-1] := mas[j];
dec(n);
end;
end;
end;
procedure FindByotpr(var mas : Ttrains; n : integer; botpravlenie : string);
var
i : integer;
begin
writeln('#':3,'Otpravlenie':23,'Pribitie':20,'Cate gory':10,'Time':10,'Number':12);
for i:=1 to n do
with mas[i] do
if otpravlenie=botpravlenie then PrintRecord(mas,i);
end;
procedure FindByCat(var mas : Ttrains; n : integer; ba, bst : string);
var
i : integer;
begin
writeln('#':3,'Otpravlenie':23,'Pribitie':20,'Cate gory':10,'Time':10,'Number':12);
for i:=1 to n do
with mas[i] do
if (pribitie=ba) and (Category=bst) then PrintRecord(mas,i);
end;
procedure FindBynum(var mas : Ttrains; n : integer; bnumber : string);
var
i : integer;
begin writeln('#':3,'Otpravlenie':23,'Pribitie':20,'Cate gory':10,'Time':10,'Number':12);
for i:=1 to n do
with mas[i] do
if number=bnumber then PrintRecord(mas,i);
end;
var
b : Ttrains;
n : byte;
punkt : byte;
subpunkt : byte;
trainotprav,
a,
st : string;
y : string;
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(' ADD train');
AddRecord(b,n,max);
readkey;
end;
2:begin
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' Delete by otpravlenie');
write('Otpravlenie =>');
readln(trainotprav);
DelRecordByotpr(b,n,trainotprav);
readkey;
end;
3:begin
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' Catalog of trains');
Print(b,n);
readkey;
end;
4:begin
repeat
subpunkt := SubMenu;
case (subpunkt) of
1:begin
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' Train by otpravlenie ');
write('Otpravlenie =>');
readln(trainotprav);
findbyotpr(b,n,trainotprav);
readkey;
end;
2:begin
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' Train by pribitie and category ');
write('Pribitie =>');
readln(a);
write('Category =>');
readln(st);
findByCat(b,n,a,st);
readkey;
end;
3:begin
SngWindow(1,6,80,25,WHITE,BLUE);
writeln(' Train by number ');
write('number =>');
readln(y);
findbynum(b,n,y);
readkey;
end;
end;
until (subpunkt = 4);
end;
end;
until (punkt = 5);
SngWindow(1,1,80,25,WHITE,BLACK);
end.
|
|
|

25.03.2010, 20:26
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
задачи по ASM'у
Всем привет.
нужно написать 27+16 задач на ASM'е задачи не сложные, готов на платной основе, ваша цена и сроки.
задачи такого типа:
1-Написать процедуру поиска элемента в неупорядочном массиве
DS:SI-указатель на массив, CX- количество элементов в массиве,BL-искомое значение
или
13-напсиать процедуру производяющую следующие действия
Bi = Ai*127; 0<=i<n
DS:SI -адрес исходного массива; CX-n;DS  I-адрес результирующего массива, элемента - двухбайтовые числа.
и т.д.
кто возьмется пиши в ПМ
все оставшиеся задачи в архиве
http://slil.ru/28853679 пароль 1251
|
|
|

25.03.2010, 21:58
|
|
Познающий
Регистрация: 08.08.2009
Сообщений: 31
Провел на форуме: 229092
Репутация:
7
|
|
Хелп ми плиз)))
Нужно написать прогу для управления б.д.
Суть в том что должна быть менюшка,в которой пункты - добавить в базу,посмотреть базу,удалить из базы и редактировать базу. Собственно в самой базе должны быть записаны имя,фамилия,номер группы(с фильтром значиений от 1* до 7*(всм по первой цифре,всего цифр максимум 5),и оценки по трем предметам.
И написать все это дело нужно на чистом С (без ++)(главное чтоб в компилятор turbo c пахало))))
Заранее благодарен))))
Прошу прощения за повторение)))Но пзц как срочно надо)))
|
|
|

26.03.2010, 00:45
|
|
Новичок
Регистрация: 21.02.2010
Сообщений: 4
Провел на форуме: 7039
Репутация:
0
|
|
Спасибо, но не помогло 
|
|
|

27.03.2010, 13:50
|
|
Новичок
Регистрация: 22.01.2010
Сообщений: 25
Провел на форуме: 63520
Репутация:
0
|
|
#include <iostream.h>
#include <string.h>
struct Spisok
{
char FIO[35];
int vik;
float seredni_bal;
};
char funcVvoda(Spisok &spisok)
{
cout<<"Vvedite predlogaemie parametri :\n";
cout<<"FIO: ";
cin>>spisok.FIO;
cout<<"\n";
cout<<"vik: ";
cin>>spisok.vik;
cout<<"\n";
cout<<"seredni bal: ";
cin>>spisok.seredni_bal;
cout<<"\n";
}
char funcVivoda(Spisok spisok)
{
cout<<"FIO: ";
cout<<spisok.FIO;
cout<<"\n\n";
cout<<"vozrast: ";
cout<<spisok.vik;
cout<<"\n";
cout<<"sereni_bal: ";
cout<<spisok.seredni_bal;
cout<<"\n";
}
int main()
{
Spisok spisok;
int vibor;
while(1)
{
cout<<"\n1.Vvod dannix\n";
cout<<"2.Vuvod dannih\n";
cout<<"3. Exit\n";
cin>>vibor;
{
if (vibor==1)
funcVvoda(spisok);
else
if (vibor==2)
{
funcVivoda(spisok);
}
else
cout<<"\n Sorry Error\n";
}
}
return 0;
}
мне нужно ввести 5 вввода даних чтоб каждий раз невыскакивало меню
помогите!!
где нужно for ставить
допишите программу!
|
|
|

27.03.2010, 15:46
|
|
Новичок
Регистрация: 07.04.2009
Сообщений: 19
Провел на форуме: 35427
Репутация:
3
|
|
Помогите написать программу на Delphi. У кого есть какие мысли как реализовать ?
Заданы координаты острых углов прямоугольного треугольника и значение острого угла. Программа определяет координаты третьей вершины(четыре решения), длину всех сторон и площадь треугольника.
|
|
|

27.03.2010, 19:14
|
|
Познающий
Регистрация: 10.12.2009
Сообщений: 33
Провел на форуме: 19460
Репутация:
0
|
|
Помогите, ПОЖАЛУЙСТА!!!Нужно решить на Паскале...СРОЧНО!!!
Задали задачу, которая состоит из 3 частей, первую сделал, дальше не получается...=(
1.Вычислить элементы матрицы по формуле:
формула; значение i,j.
Это пока работает, а вот то, что дальше - нет(помогите!плз!
2. Сформировать вектор Х(х1,х2,х3..х5), каждый элемент которого определяется как сумма элементов диагоналей матрицы(матрица, которая получилась с задания номер 1)
3. Вычислить значение G за формулой
Нужно чтоб все было сделано как одна программа.
|
|
|

27.03.2010, 19:31
|
|
Познающий
Регистрация: 10.12.2009
Сообщений: 33
Провел на форуме: 19460
Репутация:
0
|
|
Сообщение от TPAXTOP
Помогите, ПОЖАЛУЙСТА!!!Нужно решить на Паскале...СРОЧНО!!!
Задали задачу, которая состоит из 3 частей, первую сделал, дальше не получается...=(
1.Вычислить элементы матрицы по формуле:
формула; значение i,j.
Это пока работает, а вот то, что дальше - нет(помогите!плз!
2. Сформировать вектор Х(х1,х2,х3..х5), каждый элемент которого определяется как сумма элементов диагоналей матрицы(матрица, которая получилась с задания номер 1)
3. Вычислить значение G за формулой
Нужно чтоб все было сделано как одна программа.
Кстати, вот ТО, что получилось у меня.
|
|
|

27.03.2010, 21:17
|
|
Познающий
Регистрация: 28.02.2010
Сообщений: 35
Провел на форуме: 41688
Репутация:
0
|
|
Задача следующего плана:
составить программу, сравнивающую три вида сортировок (любые сортировки т.е. быстрая, пузырьком и т. д. все годятся) и выдающую в результате сколько времени было затрачено на сортировку массива данных. (желательный размер массива ~100 кб, чтобы разница во времени была очевидной)
язык C/C++
заранее благодарен.
|
|
|

28.03.2010, 12:59
|
|
Познающий
Регистрация: 10.12.2009
Сообщений: 33
Провел на форуме: 19460
Репутация:
0
|
|
Сообщение от TPAXTOP
Помогите, ПОЖАЛУЙСТА!!!Нужно решить на Паскале...СРОЧНО!!!
Задали задачу, которая состоит из 3 частей, первую сделал, дальше не получается...=(
1.Вычислить элементы матрицы по формуле:
формула; значение i,j.
Это пока работает, а вот то, что дальше - нет(помогите!плз!
2. Сформировать вектор Х(х1,х2,х3..х5), каждый элемент которого определяется как сумма элементов диагоналей матрицы(матрица, которая получилась с задания номер 1)
3. Вычислить значение G за формулой
Нужно чтоб все было сделано как одна программа.
ПОМОГИИИИТЕ....(
Последний раз редактировалось TPAXTOP; 31.03.2010 в 21:24..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|