IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> неполучается сравнить с фаилов, незнаю что надо дописать в программу
сообщение
Сообщение #1


Знаток
****

Группа: Пользователи
Сообщений: 324
Пол: Мужской
Реальное имя: maksim

Репутация: -  1  +


в двух филах указано сперва цифра указывает скоко фамилии в файле а потом идут фамилии
по алфавиту сравниваем два списка где есть фамилия в двух файлах записываем в третий
Код
program Bevarde1;
var
a,b,c,d: integer;
g,h,l:string;
prad,pr,rezult: text;
begin
assign (prad, 'matematika.txt');
assign (pr, 'informatika.txt');
assign(rezult,'rezultatai.txt');
reset (prad);
reset(pr);
rewrite (rezult);
readln (prad, a);
readln(pr,b);
for c:= 1 to a do
for d:=1 to b do
begin
readln(prad,g);
readln(pr,h);
if g=h then begin l:=h; writeln (rezult, l); end;    end;
close (prad);
close(pr);
close (rezult)
end.

плохо сравнивает фамилии те фамилии которые идут по порядку ана записывает а те которые непорядку пропускает


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


1. Для того, чтобы (хотя бы самому) легко ориентироваться в коде, этот код нужно форматировать.

2. Зачем здесь вложенный цикл?
Я не придираюсь, я задаю наводящий вопрос. Если ты сам сможешь сформулировать ответ на этот вопрос, то сам же и поймешь в чем ошибка.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Знаток
****

Группа: Пользователи
Сообщений: 324
Пол: Мужской
Реальное имя: maksim

Репутация: -  1  +


1. я эту программку вчера 3 часа форматировал.
2. чтобы одну фамилию со всеми фамилиями в списке проверять
я хотел без массива сделать а вот что с массивом получилось все правильна
Код
program Bevarde1;
var
a,b,c,d: integer;
g,h,l:string;
prad,pr,rezult: text;
e,f: array [1..100] of string;
begin
assign (prad, 'matematika.txt');
assign (pr, 'informatika.txt');
assign(rezult,'rezultatai.txt');
reset (prad);
reset(pr);
rewrite (rezult);
readln (prad, a);
readln(pr,b);
for c:= 1 to a do
begin
readln(prad,g);
e[c]:=g;
end;
for d:=1 to b do
begin
readln(pr,h);
f[d]:=h;
end;
for c:= 1 to a do
for d:=1 to b do
if e[c]=f[d] then begin l:=e[c]; writeln(rezult,l); end;
close (prad);
close(pr);
close (rezult)
end.

но надо без массива написать как

Сообщение отредактировано: maksimla -


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Знаток
****

Группа: Пользователи
Сообщений: 324
Пол: Мужской
Реальное имя: maksim

Репутация: -  1  +


вот сделал но с ошибкой повторно не хочет писать h
Код
program Bevarde1;
var
a,b,c,d: integer;
g,h:string;
prad,pr,rezult: text;
begin
assign (prad, 'matematika.txt');
assign (pr, 'informatika.txt');
assign(rezult,'rezultatai.txt');
reset (prad);
reset(pr);
rewrite (rezult);
readln(prad, a);
readln(pr,b);
  for c:= 1 to a do
  begin
  readln(prad,g);
  for d:=1 to b do
  begin
   readln(pr,h);
   writeln(h,' ',g);
   end;
   end;
   readln;
close (prad);
close(pr);
close (rezult)
end.

почему так не хочет писать повторно


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Второй вариант я вно неоптимальный.
Насколько я понял, ты хочешь открыть файл, прочитать из него одну строку и сравнить со всеми сроками второго файла.
Это у тебя есть.
Но потом ты что-то хочешь проделать со второй строкой первого файла. Что именно?
Подозреваю, что снова сравнит со всеми строками второго файла. Для этого его надо закрыть и потом открыть с начала.

Только еще раз повторяю: этот способ далеко не оптимальный. Попытайся придумать алгоритм, при котором чтение из файлов происходило бы по одному разу.
Подсказка: используй тот факт, что строки в файлах упорядочены по алфавиту.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Знаток
****

Группа: Пользователи
Сообщений: 324
Пол: Мужской
Реальное имя: maksim

Репутация: -  1  +


я первую фамилию с первого файла сравниваю с фамилию из другова файла если фамилия обнаружина в двух файлах то записываю результат в третии файл и все можете мне исправить эту программу а то мне сегодня здовать

Сообщение отредактировано: maksimla -


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Мне кажется, надо сначала ПОНЯТЬ, а только после этого СДАВАТЬ.
Попытайся для начала сделать то, что я тебе советовал в начале своего предыдущего сообщения, а потом - в конце.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Знаток
****

Группа: Пользователи
Сообщений: 324
Пол: Мужской
Реальное имя: maksim

Репутация: -  1  +


вот сделал как сказал а по алфавиту не знаю можешь по подробнее обеснить и по какому алфавиту вот програмка правильная теперь но без алфавита
Код
program Bevarde1;
var
a,b,c,d: integer;
g,h:string;
prad,pr,rezult: text;
begin
assign (prad, 'matematika.txt');
assign (pr, 'informatika.txt');
assign(rezult,'rezultatai.txt');
reset (prad);
reset(pr);
rewrite (rezult);
readln(prad, a);
readln(pr,b);
  for c:= 1 to a do
  begin
  readln(prad,g);
  reset(pr);
  readln(pr,a);
  for d:=1 to b do
  begin
  readln(pr,h);
   if g=h then writeln(rezult,g);
   end;
   end;
   readln;
close (prad);
close(pr);
close (rezult)
end.


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Кстати, сколько раз ты открываешь файл pr и сколько раз его закрываешь?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Знаток
****

Группа: Пользователи
Сообщений: 324
Пол: Мужской
Реальное имя: maksim

Репутация: -  1  +


1 заз открыл 1 раз и закрыл а reset(pr); это кажется перезапуск и его делаю столько раз скока равно а
а что чтото неправильно?


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


поиск
****

Группа: Пользователи
Сообщений: 347
Пол: Мужской
Реальное имя: nir

Репутация: -  2  +


reset - это не перезапуск ,а открытие с последующей возможностью чтения данных.


--------------------
typedef void Śūnyatā ;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(maksimla @ 20.04.2008 20:52) *

1 заз открыл 1 раз и закрыл а reset(pr); это кажется перезапуск и его делаю столько раз скока равно а
а что чтото неправильно?

Нет, открываешь ты его (а+1) раз, а вот закрываешь только один.

По поводу оптимального алгоритма - суть состоит в том, чтобы считывать из обоих файлов при совпадении и только из одного - из того, чья очередная строка раньше по алфавиту. Т.о. каждый файл ты проходишь только по одному разу.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.03.2024 15:09
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name