Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 10.05.2008, 16:12   #11
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вот нормально работает, только вводить аккуратно нужно, не путая данные.
Код:
uses crt;
type Tuch=record  //немного поправил
fam:string;
ball:string;
klass:byte;
bukva:char;
end;
var f:file of Tuch;
    sp:array[1..100] of Tuch;//массив записей
    i,n:integer;
    s:string;
begin
s:='c:/fff.txt';//можно любое расширение, например *.dat
assign(f,s);    //файл все равно типизированный и без программмы
rewrite(f);      //его не прочитаешь
write('n=');readln(n);
for i:=1 to n do 
    begin
	 writeln('Uchenik ',i);
      write('Familia: ');readln(sp[i].fam);
      write('Ball: ');readln(sp[i].ball);
      writeln('Klass: ');readln(sp[i].klass);
      writeln('Bukva: ');readln(sp[i].bukva);
      write(f,sp[i]);
    end;
close(f);
reset(f);
n:=0;
While not eof(f) do
   begin
      n:=n+1;
      read(f,sp[n]);
   end; 
writeln;   
writeln('Spisok uchenikov 9a klassa:');   
for i:=1 to n do
    begin
      if (sp[i].klass=9) and (sp[i].bukva='a')then
	    writeln('Familia ',sp[i].fam,' Ball=',sp[i].ball);
    end;
writeln;
writeln('Spisok uchenikov 9b klassa:');
for i:=1 to n do
    begin
      if (sp[i].klass=9) and (sp[i].bukva='b')then
  	  writeln('Familia ',sp[i].fam,' Ball=',sp[i].ball);
    end;
writeln;
writeln('Spisok uchenikov 10a klassa:');
for i:=1 to n do
    begin
      if (sp[i].klass=10) and (sp[i].bukva='a')then
	    writeln('Familia ',sp[i].fam,' Ball=',sp[i].ball);
    end;
writeln;
writeln('Spisok uchenikov 10b klassa:');
for i:=1 to n do
    begin
      if (sp[i].klass=10) and (sp[i].bukva='b')then
   	  writeln('Familia ',sp[i].fam,' Ball=',sp[i].ball);
    end;
readln;
close(f);
end.
puporev вне форума
Старый 10.05.2008, 23:46   #12
VANOLORD
Пользователь
 
Регистрация: 06.05.2008
Сообщений: 22
По умолчанию

Спасибо-спасибо-спасибо! а если надо не только а и б буквы, а дальше до д например. надо просто тот кусочек вставить ещё с нужной букво, так?
VANOLORD вне форума
Старый 11.05.2008, 13:38   #13
VANOLORD
Пользователь
 
Регистрация: 06.05.2008
Сообщений: 22
По умолчанию

А можно ещё один вопрос. Если не сложно, посмотрите пожалуйста. Вот задача на двунаправленные списки, но там указывает на ошибку в этой вот строчке. что там опять не так???
Дан список слов. Подсчитать кол-во верных равенств среди S1=S(n), S2=S(n-1), где Si-элемент списка.
Type TLisp=^TNode;
TNode=record
pred:TLisp;
info:string;
next:TLisp;
end;
Var p,h,g:TLisp;
s:string;
k:integer;
begin
writeln('vvedi s');
readln(s);
new(p);
p^.info:=s;
p^.pred:=nil;
p^.next:=nil;
readln(s);
while s<>0 do begin
new(q);
q^.info:=s;
q^.pred:=p;
q^.next:=nil;
p:=q;
readln(s);
end;
k:=0;
p^.pred:=p^.info;
p^.next:=q^.pred;
while p<>q do begin
if (p^.pred=q^.next) and (p^.next=q^.pred)
then k:=k+1;
end;
writeln(k);
end.
VANOLORD вне форума
Старый 11.05.2008, 15:44   #14
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

1. Можно все классы с 1 по 11 и все буквы от а до я, если не лень писать.
2.
Цитата:
while s<>0 do begin
s:string a 0:число, сравнивать их нельзя. Я не знаю, что здесь подразумевалось, думаю что если строка не пустая, то нужно писать или
if s<>'' then begin,
или if length(s)>0 then begin
3. В переменных объявлена g, а в тексте q.
4.Ошибка в строке p^.pred:=p^.info; разные типы Tlist и string.
Как правильно, я не знаю, поскольку с указателями и списками не дружу.
puporev вне форума
Старый 11.05.2008, 15:46   #15
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Во время отправки ответа завис сайт и получилось два ответа, увидел только сегодня.

Последний раз редактировалось puporev; 12.05.2008 в 07:57.
puporev вне форума
Старый 12.05.2008, 20:14   #16
VANOLORD
Пользователь
 
Регистрация: 06.05.2008
Сообщений: 22
По умолчанию

Спасибо Вам большое, что так много внимания уделяете моим задачам!
VANOLORD вне форума
Старый 12.05.2008, 22:04   #17
VANOLORD
Пользователь
 
Регистрация: 06.05.2008
Сообщений: 22
По умолчанию

Можете ещё с одной вот помочь.

//Один вопрос - одна тема. Закрыто. Alex21

Последний раз редактировалось Alex21; 14.05.2008 в 09:43.
VANOLORD вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите решить задачи!!! black_soul Фриланс 13 21.07.2008 09:22
Помогите решить задачи Andyst Помощь студентам 3 25.12.2007 15:14
ПОМОГИТЕ РЕШИТЬ ЗАДАЧИ С++ lawny Фриланс 1 24.12.2007 20:58
Помогите решить две задачи на С/С++ Сема Помощь студентам 3 24.12.2007 07:31
Помогите решить задачи! Вилен Помощь студентам 2 10.10.2007 23:12