50873

Работа с файлами, строками и списками

Лабораторная работа

Информатика, кибернетика и программирование

Задан список списков. Необходимо указать в каких словах есть шипящие буквы. Результат сохранить в файле.

Русский

2014-01-31

64.5 KB

1 чел.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ, НАУКИ, МОЛОДЕЖИ И СПОРТА УКРАИНЫ

ОДЕССКИЙ НАЦИОНАЛЬНЫЙ МОРСКОЙ УНИВЕРСИТЕТ

Кафедра «Информационные технологии»

Отчёт о выполнении лабораторной работы №7

 

«Работа с файлами, строками и списками»

Выполнил:

Студент КСФ 4 к. 4 гр.

Мельников В.Е.

Проверил:

Бодарев А.Д.

Одесса 2013

Задание к работе

Задан список списков. Необходимо указать в каких словах есть шипящие буквы. Результат сохранить в файле.

Листинг

domains

 file = f1

 object = string*

 list = object*

predicates

nondeterm analiz_string(string,integer,integer)

nondeterm glasn_bukva(char)

nondeterm videlenie_stroki(object,object)

nondeterm videlenie_spiska(list,object,object)

append(object,object,object)

save_file(object)

nondeterm start

clauses

     glasn_bukva('ш').

glasn_bukva('щ').

glasn_bukva('ч').

glasn_bukva('х').

 

analiz_string("",0,0).

analiz_string(S,Glas,Sogl) if

  frontchar(S,X,Y),

  glasn_bukva(X),  

  analiz_string(Y,Glasn,Sogl),

  Glas=Glasn+1.

  

analiz_string(S,Glas,Sogl) if

  frontchar(S,X,Y),

  not(glasn_bukva(X)),

  analiz_string(Y,Glas,Sogln),

  Sogl = Sogln+1.

videlenie_stroki([],[]).

videlenie_stroki([X|L],L2) if

  analiz_string(X,G,S),

  G>0,

  write(X,"- есть шипящие\n"),

  videlenie_stroki(L,L1),

  L2 = [X|L1].

     videlenie_stroki([X|L],L1) if

  analiz_string(X,G,S),

  G<=0,

  write(X," - нет шипящих, ","\n"),

  videlenie_stroki(L,L1).

 

append([],L,L).

append([X|L1],L2,[X|Lr]) if

  append(L1,L2,Lr).

 

 

videlenie_spiska([],L,L).

videlenie_spiska([X|L],L1,Rez) if

  videlenie_stroki(X,Spis),

  append(L1,Spis,L2),

  videlenie_spiska(L,L2,Rez).

 save_file(Rez) if

  openwrite(f1,"rezult.txt"),

  writedevice(f1),

  write("Список слов, в которых согласных больше гласных\n"),

  write(Rez),

  closefile(f1).

 

start if

 write("Задан список списков. Из него следует сформировать новый список,\n"),

 write("элементами которого будут слова исходного списка, в которых согласных\n"),

 write("больше гласных. Результат сохранить в файле.\n\n"),  

 write("Список списков строкового типа:\n"),

  readchar(_),

 List = [["проща","земля","пуща","особняк"],["шипилявый","шапошник","чижик-пыжик"],["парабола","штангенциркуль"]],

 write(List,"\n\n"),

 readchar(_),

 videlenie_spiska(List,[],Rez),

 %write("\nСписок из слов, в которых согласных больше гласных:\n"),

 %write(Rez,"\n\n"),

 save_file(Rez),

 write("Результат сохранен в файле rezult.txt\n"),

 readchar(_).

goal

start.

Выполнение программы