Вторник, 22.01.2019, 17:53
Блог учителя информатики и математики
О блогеМой профильРегистрацияВыходВход
Вы вошли как Гость · Группа "Гости" Приветствую Вас, Гость · RSS
Меню блога
Погода в нашем районе.

НАГРАДА

Как Вы считаете, должны ли дети ходить в школу в школьной форме?
Всего ответов: 2743
 
 Блог учителя
Главная » Статьи » Информатика » В помощь ученику

Входные и выходные данные (9 урок, часть 1)

Для нового участника олимпиады возникает непонимание в работе с «какими-то» входными и выходными данными. Любая олимпиадная задача  в формулировке задания обязательным образом описывает  формат входных и выходных данных, а составленная  программа должна считать  данные, обработать и вывести результат. Обычно чтение происходит из файла INPUT.TXT, а вывод в некоторый файл OUTPUT.TXT . Т.е. для решения олимпиадных задач нужно уметь работать с файлами. Помимо условия задачи, правил ввода и вывода информации на каждую задачу накладываются ограничения на время выполнения. Отнеситесь к этому, пока как к условному требованию.

Пример формулировки олимпиадной задачи по программированию  

 A+B Problem

Ограничение времени: 1.0 секунды
Ограничение памяти: 64 МБ

Вычислите a+b

Исходные данные

a и b

Результат

a+b

Пример

исходные данные

результат

1 5

6

Подсказка

Используйте +



Входные данные

В единственной строке входного файла INPUT.TXT записано два натуральных числа через пробел, не превышающих 109.

Выходные данные

В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число — сумму чисел А и В.

Пример

INPUT.TXT

OUTPUT.TXT

1

2     5

7

Эта простая задача соответствует всем критериям правильной постановки олимпиадной задачи и позволяет ознакомиться с системой автоматической проверки. При решении необходимо из входного файла input.txt, расположенного в текущей папке (где и Ваша программа) считать 2 целых числа и вывести их сумму в выходной файл output.txt.

Повторюсь, ограничения по памяти в 64Мб и времени 1 сек. весьма условны, так как такая простая задача потребует минимальную память и выполнится за минимальный промежуток времени . Каждая задача имеет пример входных и выходных данных , это необходимо для однозначного понимания содержания задачи. В данном примере в разделе отражен пример входных данных "2 5" и выходных "7", это означает, что 2+5=7.

В мире предпочтение отдается языку С++, но в России по-прежнему классическим языком программирования остается Pascal. В школе программистов при нашем АГУ изучают С++. Поэтому, чтобы получить поддержку при подготовке к олимпиаде на республиканском уровне желательно изучить ещё и С++, ну а я помогу.

Пример решения рассмотренной задачи о сложении двух чисел на языках Pascal и С:

var a,b:real;

begin

  read(a, b);

  write(a + b);

end.

 

 

на C

#include <stdio.h>

 

long a,b;

 

int main(){

  scanf("%ld%ld",&a,&b);

  printf("%ld",a+b);

  return 0;

}

 

var a, b : longint;

 

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

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

  assign(input, 'input.txt'); reset(input);

  assign(output, 'output.txt'); rewrite(output);

 

для С

 

  freopen("input.txt","r",stdin);

  freopen("output.txt","w",stdout);

 

Ну и соответственно программы  ваши примут вид:

 

var a,b:real;

 

begin

  assign(input, 'input.txt'); reset(input);

  assign(output, 'output.txt'); rewrite(output);

  read(a, b);

  write(a + b);

end.

 

 

на C

#include <stdio.h>

 

long a,b;

 

int main(){

  freopen("input.txt","r",stdin);

  freopen("output.txt","w",stdout);

  scanf("%ld%ld",&a,&b);

  printf("%ld",a+b);

  return 0;

}

 

{Реализация задачи №1 "A+B" на Pascal}

var a, b : longint;

 

 

ДЗ.Составить программу сортировки в Паскаль:

Даны три числа, расположить их в порядке убывания.

Входные данные

В единственной строке входного файла INPUT.TXT записаны три числа через пробел. Каждое число– это натуральное число, не превышающее 106.

Выходные данные

В выходной файл OUTPUT.TXT необходимо вывести три по убыванию.

Примеры


INPUT.TXT

OUTPUT.TXT

1

100  1000  900

1000 900 100

2

100     90    300

300   100   90

3

100     30     90

100   90   30


Категория: В помощь ученику | Добавил: Harchev (24.10.2013)
Просмотров: 6020 | Комментарии: 9 | Рейтинг: 3.8/4
Всего комментариев: 0
Имя *:
Email *:
Код *:
Copyright MyCorp © 2019
Блог учителя Учительский портал