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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подправил. чуток алгоритм заполнения изменил.

Код:
 
program lr4z4;  
uses crt;  
var a:array[1..10] of real;  
    c:array[1..11] of real;  
    k,i:integer;  
    x:real;  
begin  
clrscr;  
for i:=1 to 10 do  
  readln (a[i]);
writeln ('vvedite X');  
readln (x);  
i:=1;
while (i<=10) and (a[i]<=x) do begin
  c[i] := a[i];
  inc(i);
end;
c[i]:=x;
for k:=i+1 to 11 do
   c[k]:=a[k-1];
 
Writeln;
for i:=1 to 11 do  
  write (c[i]:5:1,',');
readln;
end.

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, помогите с такой задачкой:
 
Отсортируйте массив размера 50 000 методом слияния отрезков. Используйте 4 файла для хранения отрезков. 20 - максимальное количество элементов в оперативной памяти. Используйте метод внутренней сортировки - Пузырек.  
 
Вот мои наброски...

Код:
const
  s=20;  // размер серии(макс. число элементов в памяти)
 
type
    mass=array [1..50000] of integer; // массив данных
    TFile=array [1..4] of text;  // массив временных файлов
 
var fa:Tfile; f,f2:Text;
 
procedure input;  // заполнение входного файла случайным образом
var i:longint; a:mass;
begin
  Assign(f,'input.txt');
  rewrite(f);
  randomize;
  for i:=1 to 50000 do
  begin
    a[i]:=random(9);
    write(f,' ',a[i]);
  end;
end;
 
procedure CreateTmpFiles;  // создание временных файлов
var i: integer;
begin
  for i:=1 to 4 do begin
    assign(fa[i],'tmp'+chr(i+ord('0'))+'.txt');
    rewrite(fa[i]);
  end;
end;
 
procedure ResetTmp;  // открытие временных файлов
var i: integer;
begin
  for i:=1 to 4 do
    reset(fa[i]);
end;
 
procedure CloseTmpFiles;  // закрытие временных файлов
var i: integer;
begin
  for i:=1 to 4 do
    close(fa[i]);
end;
 
procedure DeleteTmpFiles;  // удаление временных файлов
var i: integer;
begin
  for i:=1 to 4 do
    erase(fa[i]);
end;
 
procedure AddTmp(a:mass; i:integer);  //запись серии во временный файл
var k: integer;
begin
 Append(fa[i]);
 for k:=1 to s do
 Write(fa[i],' ',a[k]);
end;
 
procedure bubble(var a:mass; n:longint);  // внутренняя пузырьковая сортировка
var i,j: longint;
    tmp:longint;
begin
 for i:=1 to n do
  for j:=1 to n do
    if a[j]>a[j+1]  then begin
      tmp:=a[j+1];
      a[j+1]:=a[j];
      a[j]:=tmp;
    end;
end;
 
procedure Raspred;  //распределение исходного файла на два, с сериями по 20 элементов
var i,z:integer; a,b:mass;
begin
  z:=1;
  while not eof(f) do begin
    for i:=1 to s do begin
      read(f,a[i]);
      b[i]:=a[i];
    end;
    bubble(b,i);
    AddTmp(a,z);
    inc(z);
    if z=3 then z:=1;
  end;
end;
 
{procedure PolyPhaseMerge();  // нашел наработки процедуры слияния, но не все в ней смог доработать...
var  Input1,Input2,CurrentOutput:text;  size:integer;
begin
  Size:=S;
  Input1:=fa[1];
  Input2:=fa[2];
  CurrentOutput:=fa[3];
  while not eof do begin
    while отрезки не кончились do begin
      слить отрезок длины Size из файла Input1
      с отрезком длины Size из файла Input2
      write(CurrentOutput,a);
      if (CurrentOutput=fa[1]) then
    CurrentOutput:=fa[2]
      else
        if (CurrentOutput=fa[2]) then
          CurrentOutput:=fa[1]
    else
          if (CurrentOutput=fa[3]) then
        CurrentOutput:=fa[4]
      else
            if (CurrentOutput=fa[4]) then
          CurrentOutput:=fa[3];
    end;
    if (Input1=fa[1]) then begin
      Input1:=fa[3];
      Input2:=fa[4];
      CurrentOutput:=fa[1];
    end
    else   begin
      Input1:=fa[1];
      Input2:=fa[2];
      CurrentOutput:=fa[3];
    end;
  end;
end; }
 
begin
...
  readln;
end.
 

Всего записей: 6 | Зарегистр. 18-09-2009 | Отправлено: 12:18 24-05-2010
vano 854

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SERGE_BLIZNUK спасибо большое за помошь!

Всего записей: 2 | Зарегистр. 23-05-2010 | Отправлено: 18:00 24-05-2010
Baxyz



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Товарищи, помогите, пожалуйста с решением сие задачи:
 
Дана матрица A(N,N) вещественных значений.Упорядочить по убыванию элементы каждой диагонали, параллельной побочной.

Всего записей: 17 | Зарегистр. 28-01-2006 | Отправлено: 22:26 24-05-2010
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Baxyz
 
1) в чём сложности? Как пройти по элементам каждой диагонали, параллельной побочной? или с сортировкой проблемы? Так даже тут, на форуме, по слову сортировка найдётся множество примеров. Берить обычную сортировку обменом (т.н. "пузырьком")
 
2) вот, например, матрица

Код:
 
2.0   1.0   7.0  3.0
4.0   3.0   2.0  8.0
5.0   6.0   7.0  1.0
9.0   7.0   5.0  3.0
 
упорядочите (ручками) по убыванию элементы каждой диагонали, параллельной побочной и результат опубликуйте...

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 10:31 25-05-2010
docck



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здравствуйте! Пожалуйста, помогите вот с каким заданием
 
Напишите алгоритм и программу на языке Паскаль, выполняющую следующие операции со связанными (связными) списками:
(а) Добавление элемента к концу списка.
(б) Сцепление двух списков.
(в) Освобождение всех элементов в списке.
(г) Инвертирование списка, при котором первый элемент становится послед¬ним и т. д.
(д) Удаление последнего элемента из списка.
(e) Удаление n-го элемента из списка.
(ж) Объединение двух упорядоченных списков в один упорядоченный список.
(з) Создание списка, представляющего собой объединение (по операции ИЛИ) элементов двух списков.
(и) Создание списка, содержащего элементы, общие для двух других списков.
(к) Вставка элемента после n-го элемента списка.
(л) Удаление из списка каждого второго элемента.
(м) Размещение элементов списка в возрастающем порядке.
(н) Вычисление суммы целочисленных значений элементов списка.
(о) Вычисление числа элементов в списке.
(и) Перемещение элемента node(p) на n позиций вперед по списку.
(р) Создание копии списка.
 
Заранее преогромнейшее спасибо! Вы просто не представляете, как выручите меня!

Всего записей: 613 | Зарегистр. 06-01-2004 | Отправлено: 19:29 25-05-2010
RAFAEL1113

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1) Заполнить файл случайными действительными числами. Переписать в другой файл те из них, целая часть которых является простым числом.
2) Элементами типизированного файла являются строки. Разобрать программу, которая после каждого компонента исходного файла вставляет строку, обозначающую кол-во символов в указаном компаненьте.  
3) разработать модуль для работы со строками с действиями:  
удаление пробелов из строки;  
подсчет кол-ва слов в строке;  
подсчет кол-ва символов, отличных от пробела, в строке;
удаление цифр из записи строки
Используя разработанный модуль, решить задачу: упорядочить заданный массив строк в порядке возрастания кол-ва слов в этих строках.  
 
Помагите плиз срочна, боюсь что отчилсят((((

Всего записей: 1 | Зарегистр. 26-05-2010 | Отправлено: 10:51 26-05-2010
VandB



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!  
Помогите пожалуйста с задачкой:
.........................................................................................................................................
Даны три массива  
{C_k}, k=1..k1;
 {F_k}, k=1..k2;
 {T_k},k=1..k3;  
k1,k2,k3-целые числа не привышающие 25,35 и 18 соответственно. Выбрать из каждого массива отрицательные элементы с четными индексами и записать их в порядке убывания соответственно в массивы: {V_n},{Z_m},{W_i}. Решить двумя способами:
1)Использовать PROCEDURE
2) через файл
..........................................................................................................................................

Всего записей: 164 | Зарегистр. 05-05-2009 | Отправлено: 16:47 26-05-2010
ryst10

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем помогите пожалуйста с програмками ооооочень надо, заранее огромное спасибо тем кто попытается сделать програмы.
Вот условие:
1)Написать программу определяющую сумму n-значных чисел, содержащих только нечётные цифры. Определить также, сколько чётных цифр в найденной сумме.
P.s. Надо решать через процедуры и функции.
2) Написать подпрограмму, которая выводит на печать элементы одномерного массива в порядке возростания их значений. В головной программе вызвать эту подпрограмму для различных массивов.
P.S. через функции
 

Всего записей: 1 | Зарегистр. 26-05-2010 | Отправлено: 23:46 26-05-2010
skorpion15

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый вечер! помогте пожалуйста реализовать задачу на ПАСКАЛЕ со списками! ато работа сними у меня вызывает некоторое затруднение:
 
ИМЕЕТСЯ N ЛИНЕЙНЫХ СПИСКОВ, ИМЕЮЩИХ ОДИНАКОВУЮ СТРУКТУРУ И  УПОРЯДОЧЕННЫХ ПО ВОЗРАСТАНИЮ НЕКОТОРГО КЛЮЧЕВОГО ПОЛЯ.СОЗДАТЬ ОБЩИЙ УПОРЯДОЧЕННЫЙ СПИСОК!
Cпасибо большое!

Всего записей: 9 | Зарегистр. 19-05-2010 | Отправлено: 00:13 27-05-2010
Baxyz



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SERGE_BLIZNUK
Насколько я понял задание, результат должен быть таким:

Код:
 
2.0 4.0 7.0 3.0
1.0 5.0 2.0 8.0
3.0 6.0 7.0 5.0
9.0 7.0 1.0 3.0

Всего записей: 17 | Зарегистр. 28-01-2006 | Отправлено: 01:16 27-05-2010
skorpion15

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, пожалуй так будет правильно!

Всего записей: 9 | Зарегистр. 19-05-2010 | Отправлено: 11:56 27-05-2010
yurik86

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть тeкстoвoй файл. Необходимо узнать чем являeтcя пocлeдoвaтeльность симвoлов, если - число, выяснить дeлится oнo на 2 или нет

Всего записей: 84 | Зарегистр. 28-02-2008 | Отправлено: 09:04 29-05-2010
Natalya_Alex

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые пользователи сайта!
 
Помогите, пожалуйста, решить следующую задачу:
 
Вычислить сумму и разность двух заданных одномерных массивов А и В размером 5. Результат напечатать в виде двух параллельных столбцов.

Всего записей: 6 | Зарегистр. 21-04-2010 | Отправлено: 11:25 29-05-2010
Mildred

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, уважаемые знатоки.
 
При запуске программы паскаль выводит ошибку №126 (файлы должны иметь параметры VAR). В процедуре эти 2 файла указаны именно через параметры-переменные. Паскаль АBC вообще никакой ошибки не видит, а вот обычный BP что-то не устраивает. Помогите, пожалуйста, разобраться.
 
Вот код (программа на стадии разработки, поэтому за другие ошибки не ручаюсь) :
 

Код:
program kurs_test;
uses crt;
const n=15;
type test=record
     quest:string;
     var1:string;
     var2:string;
     var3:string;
     nom_pp:byte;
     end;
     vector=array[1..n] of test;
     fltst=file of test;
     rezlt=file of string;
var t:vector; {масив записiв усiх питань}
    i,j,k,vyb:byte; tst:fltst; rzlt:rezlt; testname,rezult:string;
 
procedure new_t(a:vector; m:byte;
                var f:fltst; r:rezlt; tname,rez:string);
var i,k:byte;
begin
          writeln('Ведiть назву тесту:');
          readln(tname);
          assign(f,tname);
          rewrite(f);
          for i:=1 to m do
          begin
                seek(f,filesize(f));
                clrscr;
                with a[i] do
                begin
                      writeln('Введiть питання:');
                      readln(quest);
                      writeln('Введiть варiант 1:');
                      write('1. ');
                      readln(var1);
                      writeln('Введiть варiант 2:');
                      write('2. ');
                      readln(var2);
                      writeln('Введiть варiант 3:');
                      write('3. ');
                      readln(var3);
                      nom_pp:=i;
                end;
                write(f,a[i]);
          end;
          close(f);
          assign(r,rez);
          rewrite(r);
          writeln('Введiть кiлькiсть можливих результатiв тесту:');
          readln(k);
          for i:=1 to k do
          begin
                seek(r,filesize(r));
                writeln('Введiть результат тесту ',i,':');
                readln(rez);
                write(r,rez);
          end;
          close(r);
end;
 
procedure play_t(var f:fltst; r:rezlt; tname,rez:string);
var td:test; mn:set of byte; x:byte; {номер варiанта вiдповiдi}
                a,v1,v2,v3:byte; {к-ть вiдповiдей вiдповiдних варiантiв}
                rname:string;
begin
          assign(f,tname);
          seek(f,0);
          mn:=[1..15];
          v1:=0; v2:=0; v3:=0;
          for i:=1 to 15 do
          begin
                a:=random(15)+1;
                if a in mn then
                begin
                  read(f,td);
                  clrscr;
                  writeln('Визначення методу найкращого сприймання iнформацiї');
                  with td[i] do
                  begin
                      writeln(quest);
                      writeln('1. ',var1);
                      writeln('2. ',var2);
                      writeln('3. ',var3);
                      writeln; writeln; writeln;
                      writeln('Оберiть, будь ласка, варiант вiдповiдi');
                      repeat
                      readln(x);
                      until (x=1) or (x=2) or (x=3);
                      case x of:
                      1:v1:=v1+1;
                      2:v2:=v2+1;
                      3:v3:=v3+1;
                      end;
                  end;
                  mn:=mn-a;
                end;
          end;
          close(f);
          writeln('Ви успiшно пройшли тест. Введiть, будь ласка, своє прiзвище:');
          {оброблення результатiв тесту}
          readln(rname);
          if (a>b) and (a>c) then
          begin
                rewrite(r,rname);
                seek(r,1);
                read(r,rez);
                writeln(rez);
          end;
          else if (b>a) and (b>c) then
          begin
                rewrite(r,rname);
                seek(r,2);
                read(r,rez);
                writeln(rez);
          end;
          else if (c>a) and (c>b) then
          begin
                rewrite(r,rname);
                seek(r,3);
                read(r,rez);
                writeln(rez);
          end;
          else
          begin
                rewrite(r,rname);
                seek(r,4);
                read(r,rez);
                writeln(rez);
          end;
          close(r);
procedure open_r(var r:filedate; rez:string);
var rname:string;
begin
      clrscr;
      writeln('Для вiдкриття файлiв з результатами введiть, будь ласка, Ваше прiзвище:');
      readln(rname);
      writeln('Результати проходження тесту для ',rname,':');
      assign(r,rname);
      while not (eof(r)) do
      begin
            reset(r);
            read(r,rez);
            write(rez);
      end;
      close(r);
end;
function menu:byte;
var k:byte;
begin
      clrscr;
      writeln('Створити новий тест');
      writeln('Пройти тест');
      writeln('Подивитись результати');
      writeln('Вихiд');
      writeln; writeln; writeln;
      writeln('Оберiть, будь ласка');
      read(k);
      menu:=k;
end;
 
begin
      repeat
      vyb:=menu;
      case vyb of
      1:new_t(t,n,tst,rzlt,testname,result);
      2:play_t(n,tst,rzlt,testname,result);
      3:open_r(rzlt,result);
 
      end;
      until vyb=4;
      {$i-}
      close(tst);
      close(rzlt);
      {$i+}
end.
 

 
П.С. ошибка возникает на 18-й строке
"procedure new_t(a:vector; m:byte;  
                var f:fltst; r:rezlt; tname,rez:string);"

Всего записей: 2 | Зарегистр. 30-05-2010 | Отправлено: 12:33 30-05-2010 | Исправлено: Mildred, 12:40 30-05-2010
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1) по запрошенной Вами ошибке, Паскаль правильно ругается, ВСЕ ФАЙЛОВЫЕ переменные должны быть типа VAR, а то Вы f:fltst сделали VAR, а кто будет делать VAR r:rezlt ?!!!

Код:
 
procedure new_t(a:vector; m:byte;  
                var f:fltst; var r:rezlt; tname,rez:string);
...
procedure play_t(var f:fltst; var r:rezlt; tname,rez:string);
...
 

 
 
2) Вы лукавите. этот код не мог работать ни в TP, ни в BP, ни в PascalABC
дальше ещё будут ошибки при компиляции!
например, как Вы объясните такой код:

Код:
 
procedure play_t(var f:fltst; var r:rezlt; tname,rez:string);
var td:test; mn:set of byte; x:byte; {номер варiанта вiдповiдi}
   ...
                  with td[i] do
   ...
 

откуда у переменной td возьмётся размерность массива?!
 
дальше. А это что за код?!

Код:
 
                      case x of:
                      1:v1:=v1+1;  
                      2:v2:=v2+1;  
                      3:v3:=v3+1;  
                      end;  
 
ладно. надо убрать двоеточие (в других Pascal оно не мешало???!)
 
дальше  
строчку mn:=mn-a;  
надо заменить на Exclude(mn,a);
 
дальше идёт
Код:
 
          {оброблення результатiв тесту}
          readln(rname);
          if (a>b) and (a>c) then
откуда взялась переменная b ?
 
всё. хватит... дальше я не продолжаю.... удачи...

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 13:22 30-05-2010 | Исправлено: SERGE_BLIZNUK, 13:25 30-05-2010
Mildred

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SERGE_BLIZNUK, спасибо огромное за пояснение. Никогда раньше не видел, чтобы var указывалось 2 раза. Но это таки помогло. Спасибо!
остальные пункты успел исправить) и все таки Pascal ABC абсолютно не видел первой ошибки и спокойно компилировал программу дальше

Всего записей: 2 | Зарегистр. 30-05-2010 | Отправлено: 13:30 30-05-2010
Odysseos



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SERGE_BLIZNUK
Mildred
 
строчку mn:=mn-a;
надо заменить на Exclude(mn,a);

 
Вообще, строго говоря, можно писать и через минус - только a тогда надо в множество из одного символа превратить, поставив его в квадратные скобки, вот так:
 

Код:
 
mn:=mn-[a];
 

Всего записей: 186 | Зарегистр. 02-01-2006 | Отправлено: 17:07 30-05-2010 | Исправлено: Odysseos, 17:07 30-05-2010
bulletstr

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Рассмотрим некоторое натуральное число (n>1)  . Если оно четно , то разделим его на 2 , иначе умножим на 3 и прибавим 1 . Если полученное число равно 1 , то повторяется то же действие , пока не получится 1 . До настоящего времени не известно , завершается ли этот процесс для любого n>1.  
Даны натуральные числа k , j , m (1<k<j) . Проверить , верно ли что для любого натурального n из диапазона от k до j процесс завершается не позднее,чем после m таких действий  
 
 
 Ребята !  помогите пожалуйсто .... первый раз сюда обращаюсь  не кто не может помочь , вся надежда на вас

Всего записей: 1 | Зарегистр. 31-05-2010 | Отправлено: 14:16 31-05-2010
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bulletstr
ну и какие проблемы?
 
алгоритм простейший:
вводите k, j, m (попутно проверив, что k больше 1 и меньше j)
 
дальше цикл по n от k до j (for n:=k to j do begin... )
 
дальше цикл, за сколько достигнем единицы:
  mCur := 0;
  tt := n;
  while tt>1 do begin
     if not odd(tt) then tt := tt div 2
     else tt := tt * 3 + 1;
     inc(mCur);
  end;  
   
проверка  

Код:
 
  if mCur > m then begin
     WriteLn(' Условие проверки нарушено! Для числа ',n:1,' цикл занял ',mCur:1,' шагов.');
      break
  end;
 


Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 11:43 01-06-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 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