Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Апробація

Читайте также:
  1. Апробація

1) x=3

e=0.0001

Result: 10.06766

Ch x: 10.06761

Результат правильний.

 

2) x=5

e=0.0001

Result: 74.20991

Ch x: 74.20995

Результат правильний.

 

Завдання № 7

Тема завдання: Мова Pascal, множини

 

Постановка задачі

Використовуючи множини написати програму, яка б друкувала без повторень шляху всеможливі шляхи між двома заданими вершинами у зв’язному графі. Інформацію про граф прочитати з файлу.

 

Опис алгоритму

Суть цієї задачі полягає в тому, що ми вершини позначаємо числами, що не перевищують 9, тоді ребра ми будемо позначати двоцифровими числами. Тоді за цим алгоритмом програма може працювати не більше, ніж з дев’ятьма вершинами(може бути і з десятьма, якщо врахувати 0). Тоді шлях між двома вершинами запишеться у вигляді числа, що не перевищує дев’ять розрядів. Таким чином, ми переглядаємо у циклі всі можливі шляхи і перевіряємо, чи йому відповідають задані ребра у файлі, при цьому ми зразу відкидаємо шляхи із однаковими вершинами та ті, у яких перша вершина шляху не v1, а остання не v2, які ми зчитали з клавіатури.

 

Текст програми

Program a7;

Label 1;

TYPE vershuna=1..9;

vershunu=set of vershuna;

rebro=10..99;

rebra=set of 10..99;

VAR v1,v2:vershuna; r3:vershunu;

r:rebro; r1,r2:rebra;

ff:text; i,k,d,p,a:longint; n,t,l,m,b:integer;

Begin

assign(ff,'d:\graf.txt');

reset(ff);

r1:=[];

while not eof(ff) do begin

read(ff,r);

r1:=r1+[r];

end;

close(ff);

writeln('vvedit dvi rizni vershunu');

readln(v1);

readln(v2);

writeln(‘vsi shliahu mig dvoma vershunamu’);

 

 

i:=11;

while i<=(v1*100000000+9876543+v2) do

Begin

r2:=r1;

k:=i;

p:=i;

 

n:=0; r3:=[];

while p>0 do

Begin

b:=p mod 10;

if (b in r3) then goto 1

else r3:=r3+[b];

p:=p div 10;

n:=n+1; {n-кількість позицій i}

end;

 

d:=1; {перша вершина шляху v1}

for m:=1 to n-1 do

d:=d*10;

if (i div d)<>v1 then goto 1;

 

{нема вершин, що повторюються}

 

l:=n;

while k>10 do

begin

d:=1;

for t:=1 to l-2 do

d:=d*10;

a:=k div d;

if (a in r2) then begin

if ((a mod 10)=v2)and((i mod 10)=v2) then begin writeln(i);

end;

r2:=r2-[a];

end

else break;

 

k:=k-((k div (d*10))*d*10);

l:=l-1;

end;

 

1:i:=i+1;

end;

readln;

end.

 

Апробація

Нехай у файлі задані такі ребра: 13 24 32 45 14

1) vvedit dvi rizni vershunu

vsi shliahu mig dvoma vershunamu

Результат правильний

2) vvedit dvi rizni vershunu

vsi shliahu mig dvoma vershunamu

Завдання № 8

Тема завдання: Мова Pascal, робота з файлами

 

Постановка задачі

Задано текстовий файл, який містить символьну інформацію. Поміняти в ньому порядок входження кожної стрічки на протилежний. Додаткових файлів не використовувати.

 

Опис алгоритму

Спочатку з файлу зчитуємо стрічку. Після цього запускаємо цикл від останнього елемента стрічки до першого, і одразу виводимо на екран.

 

Текст програми

program p8;

uses crt;

var f:text; s:string; i:integer;

begin

assign(f,'abba.txt');

reset(f);

read(f,s);

for i:=length(s) downto 1 do

write(s[i]);

close(f);

end.


Дата добавления: 2015-07-17; просмотров: 107 | Нарушение авторских прав


Читайте в этой же книге: Текст програми | Опис алгоритму | Текст програми | Постановка задачі | Постановка задачі | Обсяг виконаної роботи | Загальна характеристика виконавчих органів місцевого самоврядування | Завдання № 1 | Опис алгоритму | Текст програми |
<== предыдущая страница | следующая страница ==>
Постановка задачі| Апробація

mybiblioteka.su - 2015-2024 год. (0.016 сек.)