Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434

Открыть новую тему     Написать ответ в эту тему

buffy



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Задачи и Программирование на языке Pascal/Object Pascal (Turbo, Delphi и Free Pascal)

 
Перед тем, как задать вопрос: загрузите "версию для печати" (ссылка справа вверху, над номерами страниц) и попробуйте поискать средствами браузера (ctrl+F). Большинство типовых задач уже решались, причем неоднократно!  
ВНИМАНИЕ!

Текст всех программ обязательно заключайте в теги [code][/code].
Большие тексты (более 15 строк) обязательно прячутся в [more]ВАШ ТЕКСТ и/или Ваш КОД[/more]


Альтернативный компилятор
Free Pascal Compiler (FPC) -- мощный компилятор Паскаля
 - девиз: пишешь единожды, компилируешь где хошь...
 - на 99% совместим по коду с ТР и Object Pascal (Delphi)
 - межплатформенный
 - свободный  
Lazarus -- среда разработки для FPC (аналог среды Delphi7)
 
Файлы
Русская справка
Turbo Pascal 7.1 добавлены некоторые модули из Borland Pascal, русская справка.
Borland Pascal 7.0 Полный (13-дискетный, вкл. исходники), никем не модифицированный  дистрибутив.
 
Учебники:
В.В.Фаронов - Turbo Pascal. Начальный курс
В.В.Фаронов - Turbo Pascal. Наиболее полное руководство
Д.М.Ушаков, Т.А.Юркова - Паскаль для школьников
С.М.Окулов - Основы программирования
С.М.Окулов - 2 главы из школьного учебника по информатике
В.М.Котов - Олимпиадные задачи по информатике с решениями
Никитин - набор исходников для типовых задач
Мансуров - Основы программирования в среде Lazarus - основы паскаля, много примеров, блоксхем, алгоритмов. 2010. 772 с. примеры к книге
Деревенец - Песни о Паскале - паскаль для школьников и студентов-первокурсников
Епанешниковы - Программирование в среде Turbo Pascal
Паскаль для школьников. Подготовка к ЕГЭ (2011)
Фадеев - Паскаль для школы
Потопахин - Turbo Pascal Решение сложных задач (2006)
Полезные линки
библиотека алгоритмов (есть и на Паскале)
библиотека алгоритмов (ещё одна)
библиотека алгоритмов (и ещё одна)
Разбор олимпиадных задач по информатике от Михаила Густокашина
 
Проблема с набором русского текста в консоли/Turbo Pascal
решение проблемы с набором русского текста в консоли Windows  скриптом (командным файлом)
 
Построение блок-схем
FCEditor -- Программа для автоматического построения блок-схем программ из исходного текста на языке Pascal (Delphi)
 - для правильной работы исходный текст должен начинаться со слова program или unit

Всего записей: 4 | Зарегистр. 24-10-2002 | Отправлено: 12:46 11-01-2003 | Исправлено: akaGM, 23:06 21-11-2019
Kareglazka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Задачку вот еще доделать немогу, надо в меню добавить пункт просмотр файла (процедура brow)
program Prog;
uses crt;
 
 
type
        tStudent=record
                SurName:string;
                Name:string;
                Group:Integer;
                Marks:array[0..3] of Integer;
                end;
                label mmm;
                var x:integer; bm:string;
procedure brow;
var f:file of tStudent;
begin
Assign (f, 'c:\students.dat');
rewrite(f);
read (f,);
 while not eof(f) do
 begin
 
 close(f);
end;
end;
procedure new;
var
        n:integer;
        s:tStudent;
        f:file of tStudent;
begin
        Writeln('Введите количество студентов: ');
        Readln(n);
        Assign(f, 'c:\students.dat');
        Rewrite(f);
        while n>0 do begin
                Writeln('Фамилия: ');
                Readln(s.SurName);
                Writeln('Имя: ');
                Readln(s.Name);
                Writeln('Группа: ');
                Readln(s.Group);
                Writeln('Оценки: ');
                Readln(s.Marks[0], s.Marks[1], s.Marks[2], s.Marks[3]);
                Write(f, s);
                Dec(n);
        end;
        Close(f);
        end;
procedure main;
var
        n:integer;
        s:tStudent;
        f:file of tStudent;
        BadGuys, GoodGuys, CountGuys:array[0..10] of Integer;
begin
 
        Assign(f, 'C:\students.dat');
        Reset(f);
        for n:=0 to 10 do begin
                BadGuys[n]:=0;
                GoodGuys[n]:=0;
                CountGuys[n]:=0;
        end;
        while not Eof(f) do begin
                Read(f, s);
                if (s.Marks[0]<=2)or
                   (s.Marks[1]<=2)or
                   (s.Marks[2]<=2)or
                   (s.Marks[3]<=2) then begin
                        Inc(BadGuys[s.Group])
                end else
                if (s.Marks[0]=5)and
                   (s.Marks[1]=5)and
                   (s.Marks[2]=5)and
                   (s.Marks[3]=5) then begin
                        Inc(GoodGuys[s.Group])
                end;
                Inc(CountGuys[s.Group])
        end;
        Writeln('Группа   Неуспевающие   Отличники');
        for n:=0 to 10 do begin
                if CountGuys[n]>0 then begin
                        Writeln(n,')        ',BadGuys[n]/CountGuys[n]*100:6:3,
                                '%    ',GoodGuys[n]/CountGuys[n]*100:6:3,
                                '% ');
        end;
        end;
        Close(f);
end;
begin
       mmm:clrscr;
    writeln('меню: ');
    writeln('1.Создание  нового файла');
    writeln('2.Просмотр файла ');
    writeln('3.Вывести успеваемость в процентах');
    readln(x);
    case x of
    1:new;
    2:brow;
    3:main;
    end;
         writeln('продолжить y\n'); readln(bm);
    if bm='y' then goto mmm;
 
 
end.

Всего записей: 4 | Зарегистр. 18-05-2007 | Отправлено: 10:16 20-05-2007
Jokerjar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kareglazka, держи четвертую:

Код:
program pr4;
 
const
  dem = ' .,!:;()"';
 
var
  s,sl: string;
  i: integer;
 
function anychars(s: string): boolean;
var
  i: integer;
  mas: array[byte] of byte;
begin
  fillchar(mas,sizeof(mas),0);
  anychars := false;
  for i := 1 to length(s) do
    if mas[ord(s[i])] > 0 then
      begin
        anychars := true;
        exit;
      end
    else
      inc(mas[ord(s[i])]);
end;
 
begin
  writeln('Vvedite predlogenie...');
  readln(s);
  writeln(#13#10,'Slova s povtoryaushimisya bukvami:',#13#10);
  for i := 1 to length(s) do
    begin
      if pos(s[i],dem) > 0 then
        begin
          if (sl <> '') then
            begin
              if (anychars(sl)) then
                writeln(sl);
              sl := '';
              continue;
            end;
        end
      else
        sl := sl + s[i];
    end;
  readln;
end.


Всего записей: 591 | Зарегистр. 22-03-2006 | Отправлено: 11:04 20-05-2007
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lambert

Цитата:
Ак*Х+Bк*y=Cк=1,2,3,  
Может я тупой, но я вообще не понял этого "уравнения". Разъяснить можете?  

есть три уравнения (к =1, 2, 3) задающие прямые на плоскости:
A1*X + B1*y + C1 = 0  
A2*X + B2*y + C2 = 0  
A3*X + B3*y + C3 = 0  
я думаю, что все коэф-ты вводятся пользователем. Задача найти треугольник (его площадь). Если прямые не пересекаются - тогда сообщить об этом.
У меня книжка, где есть подобные алгоритмы - несколько страниц из неё могу выложить.
Но самому писать нет времени.
 

Цитата:
function RemDouble(s:string):string;  

Две ошибки - 1) маленький нюансик - она удалит повторяющиеся символы не только в словах, а вообще в тексте (двойные пробелы, многоточия и т.д.)
2) нужно "Удалить в словах из каждой сдвоенных букв одну" - ваш алгоритм удалит всё повторяющиеся символы (3,4, 5 и т.д... не знаю, насколько это важно, но Kareglazka должна это знать ;-)))
 

Цитата:
repeat inc(N) until IsProstoe(N);  
Вы забыли not.  
Правильно:  
Код:repeat inc(N) until not(IsProstoe(N));  

с чего это вдруг?! цикл нужно повторять ДО ТЕХ ПОР, ПОКА НЕ НАЙДЁМ ПРОСТОЕ число.
Т.е. когда N - простое - тогда выходим из цикла. Всё было правильно!!
 

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 12:14 20-05-2007
myig



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
написал код... только вот сказали исправлять... как ни исправлю - перестает работать ((( помогите пожалуйста...  
 
условие задачи: в прямоугольной матрице в каждом столбце поставить на первое место максимальный элемент столбца и, если среди полученных элементов первой строки не окажется элементов, по модулю меньших заданной величины R, разделить элементы последней строки на соответствующие элементы первой строки...
 
код:
 
 
Program Z_4_3_3_01;
Type Matr=Array[1..10,1..10] of Real;
Var X:Matr;
    N,M:integer;
    R:Real;
    f1,f2:text;
 
Procedure Matrin(Var X:Matr; Var N,M:integer; Var F:Text);
Begin
N:=0;
While not Eof(F) do
begin
  M:=0;
  While not Eoln(F) do
    Begin
      Read(F,X[N+1,M+1]);
      M:=M+1;
    end;
  Readln(F);
  N:=N+1;
end;
end;
 
Procedure Matrout(Var X:Matr; N,M:integer; Var F:Text);
Var i,j:integer;
Begin
  For i:=1 to N do
    begin
      For j:=1 to M do
      write(F,X[i,j]:6:2);
      writeln(F);
    end;
end;
 
Function Max(Var X:Matr; N,Ns:integer):integer;
Var MM:Real;
    im,i:integer;
Begin
  MM:=X[1,Ns];
  im:=1;
  For i:=2 to N do
    If X[i,Ns]>MM then  
      begin
        MM:=X[i,Ns];
        im:=i;
      end;
  Max:=im;
end;
 
Procedure Per( Var X:Matr; N,M:integer);
Var j,i:integer;
    Dub:Real;
Begin
  For j:=1 to M do
    begin
      i:=max(X,N,j);
      Dub:=X[1,j];
      X[1,j]:=X[i,j];
      X[i,j]:=Dub;
    end;
end;
 
Function Prov(Var X:Matr; M:integer; R:Real):Boolean;
Var Fl:Boolean;
    i:integer;
Begin
  i:=1;
  Fl:=True;
  While (i<=M) and Fl do
  If Abs(X[1,i])<R then Fl:=False
                 else i:=i+1;
  Prov:=Fl;
end;
 
Procedure Izm(Var X:Matr; N,M:integer);
Var i:integer;
Begin
  For i:=1 to M do
  X[N,i]:=X[N,i]/X[1,i];
end;
 
Begin
Assign(F1,'vhod.txt');
Assign(F2,'vihod.txt');
reset(f1);
Rewrite(F2);
       begin
         Readln(F1,R);s
         Matrin(X,N,M,F1);
         Per(X,N,M);
         writeln(F2,'Matritsa posle perestanovki');
         Matrout(X,N,M,F2);
         If Prov(X,M,R) then  
           begin
             Izm(X,N,M);
             writeln(F2,'Uslovie vypolneno');
             Matrout(X,N,M,F2);
           end
         else writeln(F2,'Uslovie ne vypolneno');
       end;
close(f1);
close(f2);
End.
 
 
что необходимо каким-то образом исправить: процедуры matrin и matrout убрать вообще, сделать простое чтение матрицы из файла + никаких eof и eoln...  
заменить все циклы пока на циклы до (или наоборот... вообщем чтобы while не было)

Всего записей: 17 | Зарегистр. 12-05-2007 | Отправлено: 00:11 21-05-2007 | Исправлено: myig, 09:33 21-05-2007
Lambert



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
с чего это вдруг?! цикл нужно повторять ДО ТЕХ ПОР, ПОКА НЕ НАЙДЁМ ПРОСТОЕ число.  
Т.е. когда N - простое - тогда выходим из цикла. Всё было правильно!!

 
Ну да! Функция IsProstoе возвращает true если число простое и false если непростое.
 
Таким образом цикл завершится на первом же составном числе.
 

Цитата:
Две ошибки - 1) маленький нюансик - она удалит повторяющиеся символы не только в словах, а вообще в тексте (двойные пробелы, многоточия и т.д.)  
2) нужно "Удалить в словах из каждой сдвоенных букв одну" - ваш алгоритм удалит всё повторяющиеся символы (3,4, 5 и т.д... не знаю, насколько это важно, но Kareglazka должна это знать ))  
 

 
Полностью признаю. За вычетом того факта, что я замышлял передавать функции слова, а не весь текст. То есть выковыриваем слово, отдаем функции, результат выводим, и т.д.

Всего записей: 17 | Зарегистр. 16-04-2007 | Отправлено: 00:19 21-05-2007 | Исправлено: Lambert, 00:35 21-05-2007
Gavk



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Kareglazka
 
program fsb;
type matr=array[1..3] of real;
var a,b,c,l,xx,yy: matr;  
   i,j,k:integer; eps, p, s:real;
  det:array[1..3,0..2] of real;
   
function det(x,y:matr;i,j:integer; eps:real):real;
var res:real;  
begin
  res:=x[i]*y[j]-x[j]*y[i];
  if res>eps then det:=res else det:=0; {избавление от переполнения в случае параллельности пары прямых}
end;
 
procedure ReadMatr(var a,b,c:matr);
var k: integer;
for k:=1 to 3 do
  begin
    write('a[',k,']=');read(a[k]);
    write('b[',k,']=');read(b[k]);
    write('c[',k,']=');read(c[k])
  end
end;
begin
write('Введите погрешность',eps);
ReadMatr(a, b, c);
d[1,0]:=det(a,b,1,2);
d[1,1]:=det(c,b,1,2);
d[1,2]:=det(a,c,1,2);
d[2,0]:=det(a,b,1,3);  
d[2,1]:=det(c,b,1,3);
d[2,2]:=det(a,c,1,3);
d[3,0]:=det(a,b,2,3);  
d[3,1]:=det(c,b,2,3);
d[3,2]:=det(a,c,2,3);
if (d[1,0]=0) or (d[2,0]=0) or (d[3,0]=0) then writeln ('Не получится треугольник')
  else  
begin  { можно искать координаты точек}
  for i:=1 to 3 do
    begin
      xx[i]:=d[i,1]/d[i,0];
      yy[i]:=d[i,2]/d[i,0]
   end;
  dx:=xx[1]-xx[2];dy:=yy[1]-yy[2];
  l[1]:=dx*dx+dy*dy;
  dx:=xx[2]-xx[3];dy:=yy[2]-yy[3];
  l[2]:=dx*dx+dy*dy;
  dx:=xx[1]-xx[3];dy:=yy[1]-yy[3];
  l[1]:=dx*dx+dy*dy;
  p:=0;
  for i:=1 to 3 do
    p:=p+l[i];
  p:=p/2; {полный периметр нам не зачем, а вот его половина  - как раз}
  s:=p;
  for i:=1 to 3 do
    s:=s*(p-l[i]); { получили квадрат площади}
  s:=sqr(s);
  writeln('Площадь треугольника составляет ',s:6:2)
end;
end.

Всего записей: 114 | Зарегистр. 08-05-2006 | Отправлено: 01:59 21-05-2007 | Исправлено: Gavk, 02:11 21-05-2007
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lambert

Цитата:
с чего это вдруг?! цикл нужно повторять ДО ТЕХ ПОР, ПОКА НЕ НАЙДЁМ ПРОСТОЕ число.  
Т.е. когда N - простое - тогда выходим из цикла. Всё было правильно!!  
Ну да! Функция IsProstoе возвращает true если число простое и false если непростое.

Всё точно так. Только всё написано правильно - ещё раз повторяю - until выполняется в цикле пока там FALSE (ложь)! Т.е. повторять до тех пор, ПОКА выражение не станет TRUE!! (в отличии от While)
В конце концов - вместо того, чтобы спорить, взяли бы и выполнили программу! И убедились, что всё работает!
 
Jokerjar
Кстати, в задаче у пользователя просят ввести простое число - но, то, что оно простое в работе никак не используется (и на нахождение следующего числа не влияет) ... ;-)))
 
 
Добавлено:
myig

Цитата:
matrin и matrout убрать вообще, сделать простое чтение матрицы из файла + никаких eof и eoln...  

попробуйте так:
 
Program Z_4_3_3_01;  
Type Matr=Array[1..10,1..10] of Real;  
Var fMatr: file of Matr;
запись - Write(fMatr, X)  
чтение  - Read(fMatr, X)  
проблемы в том, что если менять размерность или тип элементов Matr - старый файл прочитать будет НЕЛЬЗЯ.

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 06:46 21-05-2007
myig



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
я там дописал еще...  
заменить все циклы пока на циклы до (или наоборот... вообщем чтобы while не было)  
 
извините, вчера забыл совсем, спать хотел ((
 
Добавлено:
SERGE_BLIZNUK
а если размерность поставить определенную? скажем, 12х8 ?

Всего записей: 17 | Зарегистр. 12-05-2007 | Отправлено: 09:34 21-05-2007
Jokerjar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хватит спорить на счет repeat .. until isprostoe. Все-таки прежде чем выкладывать сорс я проверил его на работоспособность... Кстати, в Си, вроде как, цикл с постусловием работает наоборот (делает, пока условие истино), из-за этого, возможно, и непонятки.

Всего записей: 591 | Зарегистр. 22-03-2006 | Отправлено: 10:57 21-05-2007
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
myig
Цитата:
а если размерность поставить определенную? скажем, 12х8 ?

1) у Вас и так размерность строго определённая: Array[1..10,1..10] of Real;  
2) можете ставить хоть 12X8 хоть 8X12 - проблема в том, что изменять не получится - какой файл (какого типа) записали, такой и читать надо.
 
while у Вас увидел только в процедуре Prov:

Код:
 
Function Prov(Var X:Matr; M:integer; R:Real):Boolean;  
Var Fl:Boolean;  
    i:integer;  
Begin  
  i:=1;  
  Fl:=True;  
  if i<=M then begin
    repeat  
      If Abs(X[1,i])<R then Fl:=False  
                  else i:=i+1;  
    until (i>M) or Not Fl;
  end;
  Prov:=Fl;  
end;  
 
 

это решение "в лоб" - т.е. полностью то же самое, что было в вашем while
я бы всё таки сделал Exit из цикла (и функции), где вы присваиваете Fl := false,
но это дело вкуса.
 
 
 

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 13:21 21-05-2007
jONES1979



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
сдетства запомнил, что цикл с постусловием работает до тех пор, пока условие ЛОЖНО.  

Код:
 
repeat  
until keypressed;
 

("как отче наш"), см как делать "паузу" в справке от TP/BP

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 16:54 21-05-2007 | Исправлено: jONES1979, 16:56 21-05-2007
hEX095

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите плиз две проги простеньких решить
 
1) Даны описания:
 
 
type str  = string[12];
   Exzam = (Matem,Inform,Ximi);
   Student = record
   FIO: record F,I,O: STR  
   end;
   
GR: 1..3;
OTM: array[Exzam] of 2..5
end;
 
Обработав сведения исходного файла (15 - 20 данных), следует в новый файл помесить номер группы, фамилию, инициалы студентов, не сдавших экзамены и их количество.
*вариант: сдавших экзамены и их количество
 
2)  
Написать программу,которая создает в текущей папке магнитного диска два текстовых файла File 1.txt и File2.txt
 
В первый файл должны быть записаны в произвольном порядке 25 положительных целых чисел,не привосходящих по своей величине 200. Во второй должны быть записаны в произвольном порядке 20 положительных чисел,так же не превосходящих по своей величине 200.
 
эт есть
 
var
f1,f2: Text;
i,j: integer;
begin
assign(f1,'File1.txt');
rewrite(f1);
assign(f2,'File2.txt');
rewrite(f2);
randomize;
 
for i:=1 to 25 do begin
 writeln(f1,random(200)-1); end;
 
for i:=1 to 20 do begin
 writeln(f2,random(200)-1); end;
close(f1); close(f2);
readln
end.
 
к этому еще необходимо организовать третий файл File3.txt,в который должны быть переписаны в порядке возрастания все числа из первого и второго файла.причем числа, содержащиеся одновременно в первом и втором файлах,в файле File3.txt повторяться не должны.

Всего записей: 6 | Зарегистр. 22-05-2007 | Отправлено: 00:16 22-05-2007 | Исправлено: hEX095, 00:17 22-05-2007
Lambert



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Jokerjar
SERGE_BLIZNUK
 
 
Все, ребят. Пардон муа, был неправ!
 
А ведь даже в хелп заглянул! И понял наоборот. )))))))))))
Смотрю в книгу и вижу... ну понятно короче.

Всего записей: 17 | Зарегистр. 16-04-2007 | Отправлено: 00:16 22-05-2007
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
hEX095
Цитата:
Обработав сведения исходного файла (15 - 20 данных),  

прежде хочу уточнить - в каком формате исходные данные (исходный файл).
Текстовый? Или типизированный (ну тогда Вам нужно ещё определить дополнительный тип, в который войдут и данные студента (ФИО) и группа, и отметки...
мысли есть (или примеры может были)?
 

Цитата:
random(200)-1
неверно. random(X) возращает число от 0<= и до <X.  
Вычитаение 1 может дать отрицательное число!!
надо просто random(200)
Теперь вопрос - какой метод сортировки использовать?
Можно тупо и банально создать массив в памяти (размером 25+20 = 45 элементов),
отсортировать его тупо (хоть методом "пузырька" - примеры сортировки были в форуме, поищите) и потом выводить в file3.txt (проверяя, не равняется ли текущее число предыдущему, если равно - не выводить.
 
 

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 01:26 22-05-2007
hEX095

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1) Файл просто, txt или dan, просто надо вписать туды значения.
 
2) Спс, учту. Массив всмысле динамический? вроде необязательно...

Всего записей: 6 | Зарегистр. 22-05-2007 | Отправлено: 10:37 22-05-2007
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
hEX095

Цитата:
Спс, учту. Массив всмысле динамический? вроде необязательно...

Так в том и проблема - в TurboPascal нет динамических массивов! Можно, конечно, изгольнуться через динамическое выделение памяти и работать через указатели или использовать списки/коллекции.  
Но в данном случае, это не ваш вариант - просто объявите массив
var MyArray[1..45] of integer;
и заполняйте, читая из файлов:
 
   for i:=1 to 25 do
      Read(f1, MyArray[i]);
...
   for i:=26 to 45 do
      Read(f2, MyArray[i]);

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 17:27 22-05-2007
virpool

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Помогите плз, камрады Ктонить знает как выглядит или где можно взять алгоритм вычисления корня линейного однородного уравнения вида F(x)=0 методом хорд с использованием второй производной для выбирания стартового приближения.  
 Буду очень благодарен. А то млн лабораторная по вышке горит

Всего записей: 143 | Зарегистр. 01-02-2007 | Отправлено: 19:53 22-05-2007
hEX095

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Глянь тут http://informatoriy.ru/index.php5?fileId=1054

Всего записей: 6 | Зарегистр. 22-05-2007 | Отправлено: 20:23 22-05-2007
Gavk



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
virpool
http://www.nsu.ru/matlab/Exponenta_RU/educat/systemat/hanova/equation/nonlinear/nonlinear1.asp.htm
http://www.referats.net/pages/referats/rkr/page.php?id=31843
 

Всего записей: 114 | Зарегистр. 08-05-2006 | Отправлено: 20:25 22-05-2007 | Исправлено: Gavk, 20:31 22-05-2007
hEX095

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
надо сдлеать так чтобы это работало...
 
var
f1,f2,f3: Text;
i,j,x: integer;
type arrType = array[1..45] of integer;
 
begin
assign(f1,'File1.txt');
rewrite(f1);
assign(f2,'File2.txt');
rewrite(f2);
assign(f3,'File3.txt');
rewrite(f3);
 
randomize;
 
for i:=1 to 25 do begin
writeln(f1,random(200)); end;
 
for i:=1 to 20 do begin
writeln(f2,random(200)); end;
 
for i:=1 to 25 do
read(f1, array[i]);
 
for i:=26 to 45 do
read(f2, array[i]);
 
writeln {что-то там}
 
if x[i]<>x[i-1] then do else rewrite(f3);
 
{ Procedure Bubble (var ar: arrType; n: integer);
var i, j, T: integer;
begin
 for i := 1 To n do
 for j := n downto i+1 do
 if ar[pred(j)] > ar[j] then begin
 T := ar[pred(j)]; ar[pred(j)] := ar[j]; ar[j] := T
end }
 
close(f1); close(f2);
readln
end.

Всего записей: 6 | Зарегистр. 22-05-2007 | Отправлено: 20:35 22-05-2007
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru