Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Братья программисты СРОЧНО нужна помощь по паскалю


Автор: disa 30.5.2004, 18:39
sad.gif Люди послезавтра у меня экзамен надо допустится написав 100 программ на паскале я НЕ УСПЕВАЮ написал 62 пожалуйста напишите хотя бы пару прог по этим заданиям они легкие и короткие plizzz!!!!

13 дан текстовый файл f Получить все его строки , содержащие менее 15 символов

7 Дан текстовый файл F Исключить пробелы стоящие в концах его строк

9 Дан файл f, компоненты которого являются целыми числами Получить в файле g все компоненты фыйла f: а) являются чётными б) делятся на 3 в) являются точными квадратами.

2)Дан текстовый файл f. получить все его строки содержащие более 30 символовю

Автор: Pakshin A. S. 30.5.2004, 19:05
Код

var
f:text;
s:string;
begin
Assing(f, '...');
reset(f);
while not Eof(f) do
 begin
  readln(f, s);
  if Length(s) < 15
    then
     writeln(s);
 end;
Close(f);
end.

Добавлено @ 19:09
Код

var
f, g:text;
s:Stirng;
begin
Assign(f, '...');
Assign(g, '...');
reset(f);
rewrite(g);
while not Eof(f) do
  begin
   readln(f, s);
   while s[1] = ' ' do
    Delete(s, 1,1);
   while s[Lengt(s)] = ' ' do
    Delete(s, Length(s), 1);
   writeln(g, s);
  end;
rewrite(f);
reset(g);
while not Eof(g) do
  begin
   readln(g, s);
   writeln(f, s);
  end;
Close(f);
Close(g);
end.

Добавлено @ 19:10
Цитата

2)Дан текстовый файл f. получить все его строки содержащие более 30 символовю

Замени в первом решении < 15 на > 30
Добавлено @ 19:11
Sorry, №9 лень писать... smile.gif

Автор: SlaUr 31.5.2004, 09:38
Цитата
9 Дан файл f, компоненты которого являются целыми числами Получить в файле g все компоненты фыйла f: а) являются чётными б) делятся на 3 в) являются точными квадратами


Код

var f1,f2:Text;i1,i2:integer;St1:string;



Function div2(i:integer):boolean;{Определение четности}
var r1:real;
begin
r1:=i;
r1:=r1/2;
if r1=Round(r1) then div2:=True else div2:=False;
end;

Function div3(i:integer):boolean;{Определение деления на 3}
var r1:real;
begin
r1:=i;
r1:=r1/3;
if r1=Round(r1) then div3:=True else div3:=False;
end;

Function kvadrat(i:integer):boolean;{Точные квадраты}
begin
kvadrat:=False;{не помню вообще что такое точные квадраты - пишите этот код сами}
end;

begin
Assign (F1,'my1.txt');Assign (F2,'my2.txt');
{$I-}Reset(F1){$I+}; if IOResult<>0 then Halt;
{$I-}Rewrite(F2){$I+};if IOResult<>0 then begin Close(F1); Halt;end;
While not Eof(F1) do
begin
  ReadLn(F1,St1);val(st1,i1,i2);
  if div2 (i1) then WriteLn(F2,St1) else
     if div3 (i1) then WriteLn(F2,St1) else
       if kvadrat (i1) then WriteLn(F2,St1);

end;
{$I-}Close(F1){$I+}; if IOResult<>0 then;
{$I-}Close(F2){$I+}; if IOResult<>0 then;
end;


Автор: disa 1.6.2004, 17:35
biggrin.gif огромное спасибо тем кто мне помог в беде очень благодарен если когда-нибудь нужна будет помощ помогу чем смогу . огромное спасибо!!!

Автор: disa 1.6.2004, 18:29
inlove.gif Еще раз благодарен за помощь осталось только две програмки, которые у меня не получаются никак не могу понять. как сделать исключение повторного вхождения числа
15) Дан файл f, компоненты которого являются целыми числами. Получить файл g, образованный из файла f исключением повторных вхождений одного и того же числа

14) Дан текстовый файл f . Записать в перевернутом виде строки файла f в файл g. Порядок строк в файле g должен быть обратным по отношению к порядку строк исходного файла.

не получается поменять порядок , как вообще аписать эту прогу

Автор: Pakshin A. S. 2.6.2004, 08:34
15) Теория: все первые вхождения числа записывай в список:
если числа нет в списке, то заносим его туда
иначе не будем писать его во второй файл

Если списки не знаем: большой массив biggrin.gif
14) Используй нетипизированный файл:


Код

for i:=FileSize(f) downto 1 do
 begin
  Seek(f, i);
  read(f, c, 1, r);
  write(g, c, 1, r);
 end;

Может к вечеру напишу полный код...

Автор: Pakshin A. S. 2.6.2004, 08:58
С поправкой №14:
Код

var
f,g:file;
c:string[1];
r:integer;
i:integer;
begin
Assign(f, 'D:\df.txt');
Assign(g, 'D:\td.txt');
reset(f, 1);
rewrite(g, 1);
for i:=FileSize(f)-1 downto 0 do
 begin
  Seek(f, i);
  Blockread(f, c, 1, r);
  Blockwrite(g, c, 1, r);
 end;
Close(f);
Close(g);
end.

Вроде работает... biggrin.gif

Автор: Pakshin A. S. 2.6.2004, 10:54
А вот и обещенная попытка:
Код

type
TRecInt = ^TRecIntA
TRecIntA = record
 Item: integer;
 Next: TRecInt;
end;

var
RecInt, HRecInt:TRecInt;

function IsInRec(const Item:integer):boolen;
begin
IsInRec:=false;
RecInt:=HRecInt;
Pred:=RecInt;
while (RecInt <> nil) and not IsInRec do
 if RecInt.^Item = Item
  then
   IsIsRec:=true;
  else
   RecInt:=RecInt^.Next;
end;

procedure AddToRec(const Item:integer);
begin
New(RecItem);
RecItem^.Item:=Item;
RecItem^.Next:=HRecItem;
HRecItem:=RecItem;
end;

procedure DelFromRec(const Item:integer);
var
b:boolean;
begin
RecInt:=HRecInt;
b:=false;
while (RecInt <> nil) and not b do
 begin
  b:=RecItem^.Item = Item;
  if b
   then
    RecItem:=RecItem^.Next^.Next;
 end;
if not b
 then
  HRecInt:=HRecInt^.Next;
end;

var
f,g:text;
i:integer;

begin
Assign(f, 'C:\SomeFileA.txt');
reset(f);
Assign(g, 'C:\SomeFileB.txt');
rewrite(g);
while not Eof(f) do
 begin
  read(f, i); // Вроде так можно делать...
  if IsInRec(i);
   then
    DelFromRec(i)
   else
    begin
     write(g, str(i) + ' ');
     AddToRec(i);
    end;
 end;
Close(f);
Close(g);
end.


Автор: disa 4.6.2004, 17:20
withstupid.gif Всем спасибо очень благодарен я допустлся до экзамена у меня не получилось 9 программ, но мне разрешили их преределать это были самые сложные проги и у меня там были ошибк они не работали не знаю как их переделать если кто знает как их написать напишите пожалуйста вот несколько из них:

13) Опишите , используя структуру данных запись , вступительных экзаменов. Абитуриенты сдавали три экзамена для поступления необходимо набрать 12 баллов . Определить списки абитуриентов , зачисленных в институт , количество несдавших экзамены. списки абитуриентов сдавших все на 5


1) опишите, используя структуру данных запись , телефонную кнтгу . составить программу выдающую список абонентов , имеющих телефонный номер начинаю щийся на 331

*никак не могу заставить прогу читать именно первые три цифры*

6)опишите используя структуру данных запись записную книжку, составить прогу выдающую список друзей , кому в этом году исполняется 25 лет. (фамилия и инициалы год рождения дата рождения месяц рождения)

*не получается составить поиск по 25 и заставить её считать года*


5) Описать используя структуру данных запись школьный класс, (фио, дата рождения , месяц рождения, год рождения)
Составить программу выдающую список учеников рожденных в мае

*аналогично*

11) Описать используя структуру данных запись , таблицу соревнований (название команды, количество набраных очков).Выбрать команду занявшую первое место . Упорядочить список команд , в зависимости от занятого места.

*какие-то проблемы с упорядочинием*

Автор: Pakshin A. S. 5.6.2004, 15:02
Забавно biggrin.gif biggrin.gif biggrin.gif
Если не к спеху, то вечером, часов в 7 по Московскомй времени, сделаю... Здесь задачки очень простые, просто тебе немного с теорией посидеть надо было и немного терпения. smile.gif

Автор: Pakshin A. S. 5.6.2004, 17:16
1)
Код

(***)
var
s:string[3];
First3:integer;
ErrorC:integer;
(***)
begin
s:=Copy(YourRecord.PhoneNumber, 1, 3);
val(s, First3, ErrorC);
(***)
end.

6)
Код

(***)
function GetLastYear(Day, Month:integer):integer;
begin
GetLastYear:=0;
if Month < YourRecord.BirthMonth
 then
  GetLastYear:=1
 else
  if Day < YourRecord.BirthDay
   then
    GetLastYear:=1;
end;

(***)
Years:=Year - YourRecord.BirthYear + GetLastYear(Day, Month);
(***)

5)
Код

function InMay(Month:integer {Month:string}):boolean;
const
MayM: string = 'май';
begin
InMay:=Month = 5 {Month = MayM);
end;

11)
Проведи аналогию с массивами. На худой конец заведи массив с очень большим колличеством элементов. smile.gif

13) (Чудный номер)
Сложить баллы пробовал?!
Если сумма больше -> inc(Поступившие)
Иначе -> inc(Не_поступившие)
Если сумма равна 15 -> inc(Гении)



P. S. Ну просто детские задачи!!! smile.gif

Автор: Rave 5.6.2004, 19:11
Модератор: Удалено как флейм

Автор: Medved 5.6.2004, 21:45
М
 
2Rave Убедительная просьба не нарушать правила форума!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)