Олимпиадные задачи по информатике давно стали другими, не как раньше.
Сейчас дают входной файл, выходной файл.
И что, полпрограммы должно уйти только на то, чтобы входной файл прочитать, создать выходной файл?
Если Паскаль, то обычными операторами assignfile, reset, close? Прочитав строку входных параметров нужно ещё потратить код на разбор строки, типа 5 3 67? Требуется время на выполнение 2 секунды, объём в памяти не должен превышать 16 МБ. Это сидеть с секундомером, засекать? Открыть диспетчер и смотреть объём занятой памяти?
Другие языки программирования и технологии
Входные-выходные данные
Си:
#include <stdio.h>
main() {
int n;
...
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
...
scanf("%d", &n); // чтение целого из файла
printf("%d", n); // запись целого в файл
}
Паскаль:
var
n: integer;
begin
assign(input, 'input.txt'); reset(input);
assign(output, 'output.txt'); rewrite(output);
...
read(n); { чтение целочисленного значения из файла в переменную }
write(n); { запись значения целочисленной переменной в файл }
end.
Где разбор строки?
Типичное условие:
Входные данные
В первой строке входного файла INPUT.TXT задано натуральное число N - количество значений (N <= 1000). Во второй строке через пробел записаны целые значения.
Выходные данные
В единственную строку выходного файла OUTPUT.TXT нужно вывести разделенные пробелом каким-то образом обработанные значения.
Си:
#include <stdio.h>
main() {
int c, n, a[1000];
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
// чтение входных данных
scanf("%d", &n);
for (c = 0; c < n; ++c) scanf("%d", &a[c]);
// расчетная часть
// ...
// запись выходных данных
for (c = 0; c < n; ++c) printf("%d ", a[c]);
}
Паскаль:
var
c, n: integer;
a: array [1..1000] of integer;
begin
assign(input, 'input.txt'); reset(input);
assign(output, 'output.txt'); rewrite(output);
readln(n);
for c := 1 to n do read(a[c]);
{ расчетная часть }
{ ...}
for c := 1 to n do write(a[c], ' ');
end.
#include <stdio.h>
main() {
int n;
...
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
...
scanf("%d", &n); // чтение целого из файла
printf("%d", n); // запись целого в файл
}
Паскаль:
var
n: integer;
begin
assign(input, 'input.txt'); reset(input);
assign(output, 'output.txt'); rewrite(output);
...
read(n); { чтение целочисленного значения из файла в переменную }
write(n); { запись значения целочисленной переменной в файл }
end.
Где разбор строки?
Типичное условие:
Входные данные
В первой строке входного файла INPUT.TXT задано натуральное число N - количество значений (N <= 1000). Во второй строке через пробел записаны целые значения.
Выходные данные
В единственную строку выходного файла OUTPUT.TXT нужно вывести разделенные пробелом каким-то образом обработанные значения.
Си:
#include <stdio.h>
main() {
int c, n, a[1000];
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
// чтение входных данных
scanf("%d", &n);
for (c = 0; c < n; ++c) scanf("%d", &a[c]);
// расчетная часть
// ...
// запись выходных данных
for (c = 0; c < n; ++c) printf("%d ", a[c]);
}
Паскаль:
var
c, n: integer;
a: array [1..1000] of integer;
begin
assign(input, 'input.txt'); reset(input);
assign(output, 'output.txt'); rewrite(output);
readln(n);
for c := 1 to n do read(a[c]);
{ расчетная часть }
{ ...}
for c := 1 to n do write(a[c], ' ');
end.
Щербаков Павел
Есть маленькие недочеты с СИ
Для чтения из текстового файла набора числовых переменных, достаточно оператора:
ReadLn(FileInput, FirstNumber, SecondNumber, FirdNumber);
ReadLn(FileInput, FirstNumber, SecondNumber, FirdNumber);
Лет 15 назад тоже давали входной и выходной файлы
Ограничение по времени нужно чтобы вы не писали алгоритмы степенной сложности, а применяли мозг
Не плачь короче
Ограничение по времени нужно чтобы вы не писали алгоритмы степенной сложности, а применяли мозг
Не плачь короче
Жесть, это где?
Логика одна и та же, либо ты сам вводишь данные и работаешь с ними, либо читаешь эти же данные из файла.
> И что, полпрограммы должно уйти только на то, чтобы входной файл прочитать, создать выходной файл?
Если основная логика -- другая половина, то это фигня а не программа)
> И что, полпрограммы должно уйти только на то, чтобы входной файл прочитать, создать выходной файл?
Если основная логика -- другая половина, то это фигня а не программа)
Похожие вопросы
- Паскаль!!)) входной файл содержит два числа x и y. Выходной последнюю цифру числа x в y степени! помогите пожалуйста!
- помогите решить задачи на паскале 1Во входном файле дана последовательность чисел. Требуется найти второе по величине чи
- помогите решить задачу Во входном файле дана последовательность чисел , число (количество чисел в после
- Напишите задачу на C++. Найти, какая оценка наиболее часто встречалась на ЕГЭ. Входные данные: 1 1 1 2 2 3 1 3 4 5 3.
- ООП это когда данные управляют кодом а функциональное когда код данными?
- Обмен данными между datagrid viewи базой данных
- Насколько безопасно хранение данных на флешке?? Я храню все резервные данные с моего ноута на флешке 32 гб!
- Как вы считаете, сколько могут стоить данные дизайны сайтов, и какой дизайн вам нравится больше? :))
- помогите разобраться с выводом данных из массива PHP
- Паскаль Структура хранения и ведения следующих данных