Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 29.08.2015
Сообщений: 28

Чтение словаря из файла и запись в вектор в ОЗУ

29.08.2015, 20:20. Показов 1983. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья хотя мой вопрос из паскаль но думаю если вы знайте другие языки программирование то наверно будете знать. Вопрос такой. { У меня есть текстовой файл, где написан словарь (каждая строка-1 слова). Надо записать словарь в оперативной памяти в новом векторе (массиве) в таком очереди, чтоб каждая новая слова начинается с предыдущий последной буквы. Если такая сова выбирать не можно, то выбрать из файла первое слова по очереди. Первое слова вектора-это первое слова из файла } Как это можно делать? мне кажется можно делать так взять первое слово и написать на векторе потом найти слова который заканчивается последной буквой первого и написать но как потом уже делать так что программа не выбрал тот же слова несколько раз? Как помощь скажу что в этом файле нету ни какой слова который начинается и заканчивается тот же буквой (это первая часть надо была так делать уже сделан) кто может помогите если программа не можете написать то хоть дайте алгоритм как вы думайте можно это делать Спасибо всем.
У меня было некоторые методы но в каждом что то пошел не так.
Кто может прошу написать алгоритм и метод свой а кто может программа общая. Буду очень благодарен всем вас большое. Заранее спасибо всем
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.08.2015, 20:20
Ответы с готовыми решениями:

Чтение из файла и запись в вектор
вобщем програмку, которая читает из файла строки и выводит в вектор написал. Но хотелось бы изменить код так, чтобы в вектор записывалось...

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

Чтение файла c словаря
Нужна помощь по созданью класса Dictionary требования к нему такие Читает слова (не обязательно отсортирован) из текстового файла...

8
0 / 0 / 0
Регистрация: 29.08.2015
Сообщений: 28
30.08.2015, 09:24  [ТС]
Я написал программу, только она ничего не выводит почему то прошу проверьте вдруг что-то не так делал. Думаю из программы вы будете понять что делает программа и если вдруг у вас будет побольше простой и интересный алгоритм, прошу написать. Заранее спасибо всем.

Pascal
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
type vector=array[1..500] of string;
var f:text; x,y:vector; i,j,n,k:integer; t,r,v:string; s:boolean;
begin
assign(f,'Kursayin2.txt'); reset(f);
i:=0;
while not eof(f) do
begin
readln(f,t);
i:=i+1;
x[i]:=t;
end; n:=i;
Close(f);
y[1]:=x[1];
for i:=2 to n do
begin
s:=true; j:=1;
while (j<=n) and s do
begin
r:=x[j]; v:=y[i-1]; k:=length(v);
if  (x[j]<>'') then if (r[1]=v[k])then
begin s:=false; y[i]:=r; x[j]:='' end
else j:=j+1;
end;
if not s then begin j:=1; s:=true;
while (j<=n) and s do if x[j]<>'' then begin s:=false; y[i]:=x[j] end
else j:=j+1; end
end;
for i:=1 to n do writeln(y[i]);
for i:=1 to n do writeln(x[i]);
readln;
end.
0
30.08.2015, 09:48

Не по теме:

Hakob1997, рекомендую Вам ознакомиться с правилами форума. Дублирование и кросспостинг тем запрещены. Для поднятия актуальности темы достаточно написать в уже существующую тему новое сообщение, например, дополнение к заданию, какой-либо уточняющий вопрос, или просто одно слово "Актуально" (ну, или Up!), и тема тут же оказывается "наверху".

0
0 / 0 / 0
Регистрация: 29.08.2015
Сообщений: 28
30.08.2015, 10:51  [ТС]
Актуально
0
Модератор
10423 / 5711 / 3402
Регистрация: 17.08.2012
Сообщений: 17,371
30.08.2015, 13:25
Не знаю, верно ли понял задание... Есть противоречие:
Цитата Сообщение от Hakob1997 Посмотреть сообщение
в таком очереди, чтоб каждая новая слова начинается с предыдущий последной буквы
Цитата Сообщение от Hakob1997 Посмотреть сообщение
потом найти слова который заканчивается последной буквой первого
Написал так:
- первая строка остаётся на месте;
- среди оставшихся строк ищется строка, начинающаяся с буквы, которой заканчивается первая строка, если такая строка найдена, она вставляется после первой строки;
- предыдущие действия повторяются для всех строк, кроме последней.

Фактически, в программе реализована сортировка массива строк вставками по заданному Вами условию (конечно, если я верно понял условие).

Вот, проверяйте, подойдёт ли. Для удобства анализа сделал вывод отсортированного массива строк в файл.
Pascal
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
const m = 500;
type vector = array[1..m] of string;
var f: text;
    x: vector;
    i, j, n, k: integer;
    t: string;
begin
  assign(f, '1.txt');
  reset(f);
  n := 0;
  while not eof(f) and (n < m - 1) do
    begin
      inc(n);
      readln(f, x[n])
    end;
  if not eof(f) then writeln('The file is loaded not completely!');
  for i := 1 to n - 1 do
    for j := i + 1 to n do
      if x[i][length(x[i])] = x[j][1]
        then begin
          t := x[j];
          for k := j downto i + 1 do x[k] := x[k - 1];
          x[i + 1] := t;
          break
        end;
  assign(f, '2.txt');
  rewrite(f);
  for i := 1 to n do writeln(f, x[i]);
  close(f);
  write('Complete, press <Enter> to exit');
  readln
end.
0
0 / 0 / 0
Регистрация: 29.08.2015
Сообщений: 28
30.08.2015, 16:16  [ТС]
Извините, если не очень то хорошо написал задание, спасибо за ответ, только ваша программа одно слова написал несколько раз, мне нужны только чтоб изменить очередь и при этом написать каждое слово только один раз, первое слова это первый символ массива, потом уже для второго и каждого следующего надо найти слова из списка который начинается буквой такой, какой заканчивается предыдущей если такое найти не можно то выбрать первый свободный не использованный из списка если опять что то не понятно извините могу сделать пример

Добавлено через 7 минут
Например я написал такой словарь
apricot
august
bus
car
lawyer
actor
pinapple
orange
april
******cy
watermelon
airport
grandmother
luggage
eggplant
balcony
banana
bank
lamb
battery
run
poor
hip
hospital
big

Ваша программа написал так
apricot
august
bus
car
run
lawyer
run
pinapple
eggplant
orange
eggplant
******cy
watermelon
airport
grandmother
run
balcony
banana
august
lamb
bus
poor
run
hospital
lawyer

Здесь вы увидите что одно слова несколько раз повторялось но мне надо было вот такой
apricot
august
bus
car
run
lawyer
actor
pinapple
eggplant
orange
april
luggage
******cy
watermelon
airport
grandmother
balcony
banana
bank
lamb
battery
poor
hip
hospital
big

Если сможете помогать завершить программу буду очень благодарен Спасибо
0
Модератор
10423 / 5711 / 3402
Регистрация: 17.08.2012
Сообщений: 17,371
30.08.2015, 18:37
Извините. Эта ошибка возникла из-за меня. Сначала я выложил неверный код (были ошибки в строках 16 и 18). Я исправил код.

Результат прогона:

Файл 1.txtapricot
august
bus
car
lawyer
actor
pinapple
orange
april
******cy
watermelon
airport
grandmother
luggage
eggplant
balcony
banana
bank
lamb
battery
run
poor
hip
hospital
big


Файл 2.txtapricot
august
bus
car
run
lawyer
actor
pinapple
eggplant
orange
april
luggage
******cy
watermelon
airport
grandmother
balcony
banana
bank
lamb
battery
poor
hip
hospital
big
Результат совпадает с требуемым.
0
0 / 0 / 0
Регистрация: 29.08.2015
Сообщений: 28
30.08.2015, 19:19  [ТС]
Cyborg Drone, Спасибо вам большое. Кажется программа работает. Я еще раз буду проверять и делать несколько другие словарь для проверка. Еще раз огромное вам спасибо. Если честно, то там был еще один условия, надо делать, это было чтоб массив показать на графическом режиме, я еще раз проверю, попробую, если что-то не получится здесь напишу. Большое вам спасибо за программу.

Добавлено через 27 минут
Cyborg Drone, Проверил пару раз программа работает отлично и без ошибок Теперь если можно к вам один такой вопрос я здесь в эту тему написал только вопрос свой но задача была такая Сначала на файле записать какой то словарь. Потом из файла убрать все слова которые начинаются и заканчиваются тот же буквой. Остальное написал что надо записать содержимое файла на массив и в конце уже на экран выводит массив на графическом режиме. У меня 2 последние вопросы. Я для создание текстового файла написал одну программу, потом для того чтоб убрать лишние слова второе, и третий уже мой и ваш этот что написали. Можно ли объединить все программы на одну или лучше чтоб были так разделены.?
И второй вопрос как можно выводить на графическом режиме?Один важный элемент мне надо графический режим для Турбо Паскаль Если можете помогать и этой вопросом буду очень благодарен если нет ничего

Вот мои 3 программи

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
var f:text;
i,n:integer;
t:string;
begin
assign(f,'Kursayin1.txt'); rewrite(f);
write('Напишите количество слов: ');
readln(n);
for i:=1 to n do 
begin
readln(t); writeln(f,t);
end; close(f);
end.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
var f,g:text;
s:string; p:integer;
begin
assign(f,'Kursayin1.txt'); Reset(f);
assign(g,'kursayin2.txt'); rewrite(g);
while not eof(f) do
begin
Readln(f,s);
p:=length(s);
if s[1]<>s[p] then writeln(g,s);
end;
Close(f);  Close(g);
end.
третый это ваша программа. Спасибо
0
Модератор
10423 / 5711 / 3402
Регистрация: 17.08.2012
Сообщений: 17,371
01.09.2015, 04:09
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Есть немного времени, решил ответить. По-моему, можно и так осттавить, каждую программу по отдельности. Можно и объединить, так, например:
Pascal
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
const m = 500;
      inp_f = 'kursayin1.txt';
      aux_f = 'kursayin2.txt';
      res_f = 'kursayin3.txt';
type vector = array [1..m] of string;
var f, g: text;
    x: vector;
    i, j, n, k: integer;
    t: string;
begin
  assign(f, inp_f);
  rewrite(f);
  write('Enter count of words: ');
  readln(n);
  writeln('Enter ', n, ' words:');
  for i := 1 to n do
    begin
      write(i, ': ');
      readln(t);
      writeln(f, t)
    end;
  Reset(f);
  assign(g, aux_f);
  rewrite(g);
  while not eof(f) do
    begin
      readln(f, t);
      if t[1] <> t[length(t)] then writeln(g, t)
    end;
  Close(f);
  reset(g);
  n := 0;
  while not eof(g) and (n < m - 1) do
    begin
      inc(n);
      readln(g, x[n])
    end;
  if not eof(g) then writeln('The file is loaded not completely!');
  close(g);
  for i := 1 to n - 1 do
    for j := i + 1 to n do
      if x[i][length(x[i])] = x[j][1]
        then begin
          t := x[j];
          for k := j downto i + 1 do x[k] := x[k - 1];
          x[i + 1] := t;
          break
        end;
  assign(f, res_f);
  rewrite(f);
  for i := 1 to n do writeln(f, x[i]);
  close(f);
  write('Complete, press <Enter> to exit');
  readln
end.
Можно ещё добавить в программу меню.

К сожалению, c графическим выводом в Turbo Pascal не работал очень давно, поэтому помочь с графическим выводом не смогу.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.09.2015, 04:09
Помогаю со студенческими работами здесь

Тест ОЗУ: чтение и запись
Уважаемые форумчане, помогите, пожалуйста, объяснить график! Что отмечено на оси Х?( -2кб -1кб 0 1кб 2кб и т.д.) И почему кривая чтения и...

Создание csv файла в программе, и запись в него словаря
Программа должна создавать директорию, папку и файл формата csv в папке и записывать в файл csv обработанные слова. При этом после запуска...

Чтение файла, чтение названия папки где находится файл, запись данных на PHP
Допустим у нас есть структура с папками типа Large -&gt; Vehicles -&gt; Firetruck_0 В этой папке лежит файл формата .dat Что нужно сделать? ...

Запись и чтение в файл массива структур в которую вложен вектор
Здравствуйте! Подскажите как и можно ли вообще записать в один файл данную структуру: struct Xozorgan { char familia; char...

Чтение из файла в вектор
Нужно написать программу, которая делает чтение из файла и запись в файл в обратном порядке(по символам).Решил сделать через вектор, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru