Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2009, 21:48   #1
vlad1991
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 69
По умолчанию Паскаль!Прога на файлы!

Создать текстовый файл, компонентами которого являются целые числа.Найти в каждой строке количество простых чисел и записать в другой файл.
Вот решение мое:

Код:
program main;
var
f1,f2:text;
g,x:real;
i,t,n,p,k:integer;
S:string;
begin
	assign(f1,'f1.txt');
	rewrite(f1);
	writeln('vvedite kol strok');
	readln(n);
	for i:=1 to n do
	begin
		readln(S);
		writeln(f1,S);
	end;
	close(f1);
	reset(f1);
	assign(f2,'f2.txt');
	rewrite(f2);
	while not eof(f1) do
	begin
		readln(f1,x);
		p:=0;
		while not eoln(f1) do
		begin
			k:=0;
			for t:=2 to round(sqrt(x)) do
			begin
			if x mod t=0 then k:=k+1
			if k=0 then p:=p+1;
			end;
			writeln(f2,p);
		end;
	end;
	close(f1,f2);
	writeln;
	reset(f2);
	while not eof(f2) do
	begin
		readln(f2,S);
		writeln(S);
	end;
	readln
end.
Не работает!Помогите решить до конца!

Последний раз редактировалось Stilet; 23.02.2009 в 09:21.
vlad1991 вне форума Ответить с цитированием
Старый 23.02.2009, 09:28   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вот я например не понял что ты делаеш вторым while not eoln(f1) do...
Вот все вроде пучком, но проверять числа на простоту нужно по другому.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.02.2009, 09:37   #3
Disel
Форумчанин
 
Аватар для Disel
 
Регистрация: 08.01.2009
Сообщений: 180
По умолчанию

Простые числа, это те числа которые делятся только сами на себя. Вроде так, помойму.
"Все что натыкано на клаве, ведет тебя к погибели иль славе"
Если помог нажми на весы
Disel вне форума Ответить с цитированием
Старый 23.02.2009, 10:03   #4
vlad1991
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 69
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Вот я например не понял что ты делаеш вторым while not eoln(f1) do...
Вот все вроде пучком, но проверять числа на простоту нужно по другому.
Мне же надо найти количество в каждой строке=)
А eoln и служит для контроля конца строки!
vlad1991 вне форума Ответить с цитированием
Старый 23.02.2009, 10:20   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
vlad1991
Да, но readln перед этим перевести должен строку на другую. Уловил?
Тебе нужно read просто.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.02.2009, 10:43   #6
vlad1991
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 69
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Да, но readln перед этим перевести должен строку на другую. Уловил?
Тебе нужно read просто.
я попробовал, но все равно не пашет=(
Ошибка в цикле по t=(
vlad1991 вне форума Ответить с цитированием
Старый 23.02.2009, 23:04   #7
Rus 47
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 28
По умолчанию

Вот, погляди на это.
Вложения
Тип файла: rar PASCAL1.rar (419 байт, 10 просмотров)
Rus 47 вне форума Ответить с цитированием
Старый 25.02.2009, 10:51   #8
vlad1991
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 69
По умолчанию

Спасибо!вроде работает, но че-то до меня не доходит для чего операцию Case???Зачем она?
vlad1991 вне форума Ответить с цитированием
Старый 25.02.2009, 13:24   #9
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Текстовый файл целых чисел создается заранее в блокноте и сохраняется с именем f1.
Код:
program main;
uses crt;
function Prost(n:longint):boolean;{функция определения простых чисел}
var i:longint;
begin
for i:=2 to round(sqrt(n)) do
if n mod i=0 then
  begin
   Prost:=false;
  end;
end;

var
f1,f2:text;
k,a:integer;
s:string;

begin
clrscr;
assign(f1,'f1.txt');
reset(f1);
assign(f2,'f2.txt');
rewrite(f2);
while not eof(f1) do {пока не конец файла}
  begin
    k:=0;
    while not eoln(f1) do{пока не конец строки}
	begin
        read(f1,a);{читаем числа}
        if (a>1) and Prost(a) then inc(k);{если число больше 1 и простое, считаем}
      end;
    writeln(f2,k);{записываем в новый файл}
    readln(f1,s);{пропускаем строку}
  end;
close(f1);{закрываем файлы}
close(f2);
readln
end.
puporev вне форума Ответить с цитированием
Старый 25.02.2009, 20:35   #10
vlad1991
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 69
По умолчанию

Большое спасибо Пупорев, очень помог!
vlad1991 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль.Файлы. задача. pif Помощь студентам 1 07.02.2009 23:00
Файлы, строки. Паскаль Safary Помощь студентам 6 08.12.2008 18:04
Типизированные файлы.Паскаль.help! ромка) Паскаль, Turbo Pascal, PascalABC.NET 1 17.05.2008 07:59
Паскаль...Файлы, Одномерные массивы Extrem_um Помощь студентам 10 12.04.2008 18:21