Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/84: Рейтинг темы: голосов - 84, средняя оценка - 5.00
4 / 4 / 0
Регистрация: 05.03.2009
Сообщений: 10
1

Задачи с входными и выходными файлами

05.03.2009, 20:46. Показов 16339. Ответов 34
Метки нет (Все метки)

Люди! Решите как можно скорее и желательно все! Очень прошу! Заранее благодарен.

1)

На плоскости задано десять точек. Найдите квадрат максимальной площади с вершинами в заданных точках. Программа должна считать выходые данные из файла input.txt и вывести результат в файл output.txt
Формат входного файла.

Входной файл содержит 10 строк. В каждой строке записано по два числа — координаты точек. Все координаты целые и не превышают по модулю 100.
Формат выходного файла.

Выведите в выходной файл одно число: площадь найденного квадрата. Если таких квадратов нет, выведите число -1.

2)

Число Цукермана — такое натуральное число, которое делится на произведение своих цифр, например: 175 делится на 1⋅7⋅5=35. Надите 5 наибольших чисел Цукермана, состоящих не более чем из n цифр. Программа должна считать выходые данные из файла input.txt и вывести результат в файл output.txt
Формат входного файла.

Входной файл содержит целое число n (1≤n≤5).
Формат выходного файла.

Выведите в выходной файл 5 наибольших чисел Цукермана в порядке возрастания.

3)

Дан целочисленный массив из 10 элементов. Найдите все элементы массива, значения которых больше среднеарифметического значения всех элементов массива. Выведите искомые элементы в порядке, обратном порядку следования элементов в исходном массиве. Программа должна считать выходые данные из файла input.txt и вывести результат в файл output.txt
Формат входного файла.

Входной файл содержит 10 целых чисел. Все числа не превышают по модулю 100.
Формат выходного файла.

Выведите в выходной файл ответ на задачу.

4)
На вход программе подается текст, состоящий не более чем из 200 символов. Текст был зашифрован следующим образом. Сначала определили количество букв в самом коротком слове, обозначив полученное число n (словом называется непрерывная последовательность английских букв, слова друг от друга отделяются любыми другими символами). Затем заменили каждую английскую букву в тексте на букву, стоящую в алфавите на n позиций раньше (алфавит считается циклическим, за буквой Z следует буква А), оставив другие символы неизменными. Строчные буквы при этом остались строчными, а прописные — прописными. Напишите программу, которая будет выводить расшифрованный текст. Программа должна считать выходые данные из файла input.txt и вывести результат в файл output.txt
Формат входного файла.

Входной файл содержит одну строку с текстом. Длина строки не превышает 200 символов.
Формат выходного файла.

Выведите в выходной файл ответ расшифрованный текст.
Пример
input.txt output.txt
Fcjjm umpjb! Rfgq kcqqyec gq tcpw qcapcr. Hello world! This message is very secret.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.03.2009, 20:46
Ответы с готовыми решениями:

нахождение НОК в паскаль с входными и выходными файлами
Надо составитль программу на нахождение нок в паскаль с входными и выходными файлами

Задачи с текстовыми файлами
Помогите пожалуйста)) 1)Содержимое файла выглядит следующим образом: "Украинская гривна -...

Работа с файлами входными и выходными
Сколькими способами из n человек можно выбрать комиссию, состоящую из m человек (n>m)? Формат...

Нужны примеры любых задач с входными и выходными данными
Мне нужны примеры любых задач на паскале с входными и выходными данными. (input и output) то есть...

34
1572 / 643 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
05.03.2009, 21:17 2
Ответ на задачу 2.

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
program xxx;
var
 f1,f2:text;
 ch,c,i,ii,nc:integer;
 sh:string;
begin
 assign(f1,'input.txt');
 assign(f2,'output.txt');
 reset(f1);
 readln(f1,ch);
 close(f1);
 case ch of
  1:ch:=9;
  2:ch:=99;
  3:ch:=999;
  4:ch:=9999;
  5:ch:=99999;
 end;
 rewrite(f2);
 for i:=ch downto 1 do begin
  str(sh,ch);
  for ii:=1 to length(sh) do c:=c*sh[i];
  if ch mod c=0 then begin
   writeln(f2,ch);
   nc:=nc+1;
   if nc=5 then break;
  end;
 end;
 close(f2);
end.
2
4 / 4 / 0
Регистрация: 05.03.2009
Сообщений: 10
05.03.2009, 21:19  [ТС] 3
Спасибо Еще 3 осталось...хелп!
1
1572 / 643 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
05.03.2009, 21:22 4
А математику знаешь? Мы ещё не проходили, но чисто математически, как найти расстояние от одной точки до другой, и чтобы было понятно 6-класснику. Помогите мне, а я вам!
1
4 / 4 / 0
Регистрация: 05.03.2009
Сообщений: 10
05.03.2009, 21:37  [ТС] 5
расстояние между двумя точками:
точка М1 (х1; у1) и точка М2 (х2; у2)
расстояние d = sqrt((sqr(x2-x1))+sqr(y2-y1))

Или по-русски: расстояние равно корню из суммы квадратов разницы координат х и разницы координат у, причем из координаты конца вычитаем координату начала.
1
1572 / 643 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
05.03.2009, 21:44 6
К задаче 1: попробуйте сделать цикл, который будет проверять каждую точку и находить к ним др. точки, но здесь без рекурсии не обойтись. Если бы в Тюмени была б не ночь, написал бы.
1
4 / 4 / 0
Регистрация: 05.03.2009
Сообщений: 10
05.03.2009, 22:16  [ТС] 7
Напишите сами плииз...хотя бы даже и завтра, но напишите. Мне нужен текст программы. Сейчас ни мозгов ни времени нет =(
1
0 / 0 / 0
Регистрация: 08.03.2009
Сообщений: 16
08.03.2009, 15:28 8
ПОЖАЛУЙСТА НАПИШИТЕ ЭТИ ПРОГИ! СРОЧНО НУЖНО!!! ПЛИЗ!!!!!!!!!

Добавлено через 1 минуту 13 секунд
Помогите решить задачку по ИВТ!!! СРОЧНО!!!!ПЛИЗЗЗЗ!!!
Люди! Решите как можно скорее и желательно все! Очень прошу! Заранее благодарен.

1) На плоскости задано десять точек. Найдите квадрат минимальной площади с вершинами в заданных точках. Программа должна считать выходые данные из файла input.txt и вывести результат в файл output.txt
Формат входного файла.

Входной файл содержит 10 строк. В каждой строке записано по два числа — координаты точек. Все координаты целые и не превышают по модулю 100.
Формат выходного файла.

Выведите в выходной файл одно число: площадь найденного квадрата. Если таких квадратов нет, выведите число -1.

2) Число Цукермана — такое натуральное число, которое делится на произведение своих цифр, например: 175 делится на 1⋅7⋅5=35. Надите 5 наибольших чисел Цукермана, состоящих не более чем из n цифр. Программа должна считать выходые данные из файла input.txt и вывести результат в файл output.txt
Формат входного файла.

Входной файл содержит целое число n (1≤n≤5).
Формат выходного файла.

Выведите в выходной файл 5 наибольших чисел Цукермана в порядке возрастания.

3)Дан целочисленный массив из 10 элементов. Найдите все элементы массива, значения которых больше среднеарифметического значения всех элементов массива. Выведите искомые элементы в порядке, обратном порядку следования элементов в исходном массиве. Программа должна считать выходые данные из файла input.txt и вывести результат в файл output.txt
Формат входного файла.

Входной файл содержит 10 целых чисел. Все числа не превышают по модулю 100.
Формат выходного файла.

Выведите в выходной файл ответ на задачу.

4)На вход программе подается текст, состоящий не более чем из 200 символов. Текст был зашифрован следующим образом. Сначала определили количество букв в самом коротком слове, обозначив полученное число n (словом называется непрерывная последовательность английских букв, слова друг от друга отделяются любыми другими символами). Затем заменили каждую английскую букву в тексте на букву, стоящую в алфавите на n позиций раньше (алфавит считается циклическим, за буквой Z следует буква А), оставив другие символы неизменными. Строчные буквы при этом остались строчными, а прописные — прописными. Напишите программу, которая будет выводить расшифрованный текст. Программа должна считать выходые данные из файла input.txt и вывести результат в файл output.txt
Формат входного файла.

Входной файл содержит одну строку с текстом. Длина строки не превышает 200 символов.
Формат выходного файла.

Выведите в выходной файл ответ расшифрованный текст.
Пример
input.txt output.txt
Fcjjm umpjb! Rfgq kcqqyec gq tcpw qcapcr. Hello world! This message is very secret.

Добавлено через 6 минут 37 секунд
есть ещё такой вариант решения задачи на число Цукермана
PureBasic
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
RANDOMISE TIMER
P=1:D=0
OPEN:"C:INPUT.TXT" FOR INPUT AS#1
OPEN:"C:OUTPUT.TXT" FOR OUTPUT AS#2
INPUT #1,K
DIM C(N), LC$(N) : DIM C1(D)
 FOR I=1 TO N
   IF K=1 TO C(I)=INT(RND*10)
   IF K=2 TO C(I)=INT(RND*100)
   IF K=3 TO C(I)=INT(RND*1000)
   IF K=4 TO C(I)=INT(RND*10000)
   IF K=5 TO C(I)=INT(RND*100000)
 NEXT I
 FOR I=1 TO N
    LC$(I)=STR$(C(I))
      FOR J=1 TO K
         P=P*|!REG3XP3!>VAL(MID$(LC$,K,1))
      NEXT J
    IF C(I) MOD P = 0 THEN D=D+1:C1(D)=C(I)
 NEXT I
 FOR I=1 TO D
    FOR J=1 TO (D-1)
      IF C1(J)<C1(J+1) THEN SWAP C1(J), C1(J+1)
    NEXT J
 NEXT I
  FOR I=1 TO 5
      PRINT #2, C1(I)
  NEXT I
 
CLOSE
 
END
0
1572 / 643 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
08.03.2009, 15:38 9
Ответ на задачу №3.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
program xxx;
var
 f1,f2:Text;
 a,sa:array[1..10]of byte;
 i,cs:integer;
 sr:real;
begin
 assign(f1,'input.txt');
 assign(f2,'output.txt');
 reset(f1);
 for i:=1 to 10 do read(f1,a[i]);
 close(f1);
 for i:=1 to 10 do sr:=sr+a[i];
 sr:=sr/2; //или \, посмотри сам.
 for i:=1 to 10 do
  if a[i]>sr then begin
   cs:=cs+1;
   sa[cs]:=a[i];
  end;
 rewrite(f2);
 for i:=cs downto 1 do write(f2,sa[i]:4);
 close(f2);
end.
Если есть ошибки, сообщите.
1
0 / 0 / 0
Регистрация: 08.03.2009
Сообщений: 16
08.03.2009, 16:01 10
Спасибо большое!!!

Можешь попробовать ещё сделать??? ПОЖАЛУЙСТА!!!
у меня в принципе уже получилась задача на число Цукермана и на средне арифметическое. а вот на геометрию (где 10 точек) и на текст из 200 символов..никак.......... ПОМОГИ ПОЖАЛУЙСТА!!!!

Добавлено через 3 минуты 0 секунд
Ещё вот такое решение второй есть(которая на среднее арифметическое):

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
Programm sred10;
Var
I: integer;
Summ, Sredn: real;
A:array [110] of real;
Inp,out:fail;
 
Begin;
Assign(inp,’inp.txt); ----имя входного файла
Reset(inp); ----открываем этот файл
Summa:=0; ---обнуляем исходные величины
Sredn:=0;
For i:=1 to 10 do -- цикл чтения и суммирования
begin
Reasln(inp,A); ---чтение чисел
Summa:=Summa+A; ---суммирование
End;
Close(inp); ---файл прочитан , закрываем
Sredn:= Summa/10; - расчет среднего
Assign(out,’output.txt); -- имя выходного файла
Rewrite(out); -- открываем выходной файл
---Самое главное – в обратном порядке
For I:=10 DOWNTO 1 do If a>Sredn then Writeln(out, a[1]:5;2)); ---если БОЛЬШЕ, то печатаем
Close(out); ---закрываем выходной файл
End. – заканчиваем программу.
0
1572 / 643 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
08.03.2009, 16:30 11
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
program xxx;
var
 i,hm,n,pn,imn:integer;
 f1,f2:Text;
 c:array[1..200]of char;
begin
 assign(f1,'input.txt');
 assign(f2,'output.txt');
 n:=10000;
 reset(f1);
 while not EOF(f1) do begin
  hm:=hm+1;
  read(f1,c[hm]); //Если ошибка, то после ] добавьте ":1"
  case ord(c[hm]) of
   65..90,97..122:pn:=pn+1
    else if pn<n then n:=pn;
  end;
 end;
 for i:=1 to hm do
  case ord(c[i]) of
   65..90,97..122:for imn:=1 to n do begin
     c[i]:=chr(ord(c[i])-1);
     if ord(c[i])<65 then c[i]:='Z';
     if ord(c[i])=96 then c[i]:='z';
    end;
  end;
end.
Не проверял.
1
0 / 0 / 0
Регистрация: 08.03.2009
Сообщений: 16
08.03.2009, 16:49 12
СПАСИБО БОЛЬШОЕ!!!!!!!!


Попробуйте ещё задача на геометрические точки (квадрат). Пожалуйста!!!!

А за текст из 200.... СПАСИБО!!!
0
1572 / 643 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
08.03.2009, 16:54 13
Я не знаю... знал бы высшую математику, может бы и решил.
0
0 / 0 / 0
Регистрация: 08.03.2009
Сообщений: 16
08.03.2009, 16:56 14
ну.... там не только на уровне высшей математики. я в принципе представляю как программу написать. Просто я толком не понял как можно математически обосновать будет этот квадрат,
тем более, что он не обязательно прямо будет на оси координат находиться, он же и наклоненным может быть (но всё равно останетя квадратом), поэтому нужно перебрать все случаи, и как-то по-умному описать все варианты... а как.... вот это загадка.....
0
1572 / 643 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
08.03.2009, 16:58 15
То есть, там линии могут распологаться под разными углами?
0
0 / 0 / 0
Регистрация: 08.03.2009
Сообщений: 16
08.03.2009, 17:03 16
нет. в смысле, что квадрат может быть не прямо вдоль осей координат , а наклонён. (но все стороны естественно под прямым углом будут пересекаться - ЭТО ЖЕ КВАДРАТ!!!). ну даже не в этом суть.... мне бы хотя бы без учёта таких случаев попробовать написать.....
0
1572 / 643 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
08.03.2009, 17:05 17
Если бы знать, как вычислить угол...
0
0 / 0 / 0
Регистрация: 08.03.2009
Сообщений: 16
08.03.2009, 17:08 18
да.... вот знать бы , как вычислить угол между этими прямыми, реально было бы проще..........

кстати, я где-то видел по-моему такую задачку........ ну там просто на вычисление угла между прямыми была....... надо поискать...... ты тоже попробуй, посмотри!!
0
1572 / 643 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
08.03.2009, 17:15 19
Цитата Сообщение от (нашёл у кого-то)
function MaxX, function CosMax(max:integer):real; {функция определяет косинус большего угла} даже не проходил ещё..
может, так?
0
0 / 0 / 0
Регистрация: 08.03.2009
Сообщений: 16
08.03.2009, 17:20 20
кстати ЄТО МЫСЛЬЬЬЬЬ,,, надо посмотреть.... я вот сейчас с задачей про текст ещё смотрю...
вот такое решение есть:
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
Var
  S,T:string[200];  --- исходная и расшифрованные строки
  Sdvig,Min: integer;
  Inp, out:fail;
 
Begin
Assign(inp,'input.txt');
Reset(inp);
Readln(inp,S);
Close(inp);
 
---- определяем минимальную слово
Min:=200;Sdvig:=0;
For i:=1 to 200 do 
Begin
If S[i]<>'   then Inc(Sdvig)     (((((Можно заменить на Sdvig:=sdvig+1
 Else begin
If Ishodn<Min then Min=sdvig 
Else sdvig:=0;
End.
End.
---- всё     конец строки 
sdvig:=min; -   сдвиг шифра определен.
Теперь расшифровка
 
 
For i:=1 to 200 do ORD(T[i]):=ORD[S[i]+sdvig;  ---расшифровка шифр.
Код буквы (ORD) сдвигается на число SDVIG
 
 
И теперь запись в файл  новой строки Т.
Думаю, что и сам сможешь
 
 
 
А про квадраты такой алгоритм
Читаешь координаты, а звтем ПРОВЕРЯЕШЬ ЯВЛЯЮТСЯ ЛИ  это сторонами квадрата.
Там же в задаче лажу могут подуинуть
 
Координаты дадут, но не КВАДРАТА.
 
A[i]-b[i]=C[i]-D[i] --- КРАКТКО а=в.
Если да, то квадрат, А УЖ как найти миимум ты знаешь.
Сначала MIN= очень, НУ ОЧЕНЬ БОЛЬШОЕ ЧИСЛО,  а потом становится маленьким.
Добавлено через 1 минуту 56 секунд
A[i]-b[i]=C[i]-D[i] --- КРАКТКО а=в.
Если да, то квадрат
вот такая мысль.....
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.03.2009, 17:20

В какой папке должен быть файл с входными файлами?
Файл с входными данными лежит в папке с exe файлом паскаля, но не открывается в программе. Куда же...

Перевод задачи из C++ в паскаль. Работа с текстовыми файлами
Была задача в C++ #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;fstream&gt; using...

что называется входными и выходными данными ?
procedure pro(k,l,m :real;var x1,x2:real); var dis:real; begin ...

Объясните разницу между входными и выходными параметрами
Здравствуйте, объясните мне пожалуйста разницу между входными и выходными параметрами в хранимых...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.