Страницы

Уроки 43, 44 Решение задач с использованием файлового ввода (массивы)

Задача 1.
В одномерном массиве А из n элементов каждый элемент равен 3, 4 или 5. Переставить элементы так, чтобы сначала располагались все четверки, затем все тройки и, наконец, все пятерки. Разрешается использовать только один массив.

Формат ввода:
Ввод из файла input.txt.
В 1-ой строке число n
Во 2-ой строке находятся n целых  чисел - элементы массива.

Формат вывода:
Запись в файл output.txt.
В строке находятся n целых  чисел - элементы массива.

Пример
 input.txt                       output.txt
5                                   4 4 3 3 5  
4 3 3 5 4

Указание. В данной задаче нет смысла менять элементы местами, просто необходимо подсчитать количество троек, пятерок и четверок в данном массиве и затем записать в массив сначала посчитанное количество четверок, затем троек и пятерок.

program z1;
type mas=array[1..100] of integer;
var n,i,k3,k4:integer;
a:mas;
procedure vvod;
begin
assign(input,'input.txt');
reset(input);
readln(n);
for i:=1 to n do
read(a[i]);
close(input);
end;
procedure vyvod;
var j:integer;
begin
assign(output,'output.txt');
rewrite(output);
for i:=1 to k4 do
write(4,' ');
for i:=k4+1 to k4+k3 do
write(3,' ');
for j:=i+1 to n do
write(5,' ');
close(output);
end;
procedure pods(c:integer; var k:integer);
begin
k:=0;
for i:=1 to n do
if a[i]=c then k:=k+1;
end;
begin
vvod;
pods(3,k3);
pods(4,k4);
vyvod;
end.


Задания

Задание 1. Дана последовательность 10 неравных целых чисел. Заменить отрицательные элементы массива на противопо­ложные по знаку.

Формат ввода:
Ввод из файла input.txt.
В строке находится 10 целых чисел.

Формат вывода:
Запись в файл output.txt.
В строке находится 10 целых чисел преобразованных.

Пример
input.txt                                   output.txt
15 -3 0 5 -1 -12 2 3 4 8             15 3 0 5 1 12 2 3 4 8

          Тесты                      Посмотреть решение               



Задание 2. Даны два одномерных массива одинаковой размерности. По­лучить третий массив такой же размерности, каждый эле­мент которого равен сумме соответствующих элементов данных массивов.

Формат ввода:
Ввод из файла input.txt.
В 1-ой строке находится число n (размерность массивов).
2-ая строка: элементы 1-го массива;
3-я строка: элементы 2-го массива

Формат вывода:
Запись в файл output.txt.
В строке массив суммарных значений двух исходных.

Пример
input.txt                             output.txt
5                                         
3 4 6 4 23
4 2 0 4 1
-1 2 6 0 22        



          Тесты                      Посмотреть решение               

Задание 3. Дан массив целых чисел. Определить сумму всех простых элементов массива.

Формат ввода:
Ввод из файла input.txt.
В 1-ой строке находится число n
2-ая строка: n чисел

Формат вывода:
Запись в файл output.txt.
сумма простых элементов

Пример
input.txt                                       output.txt
10                                                52
1 0 3 7 10 12 19 23 25 30        

          Тесты                      Посмотреть решение               


Задание 4. Задано n различных целых положительных чисел, каждое из которых меньше 1000. Необходимо расположить эти числа в порядке возрастания сумм их цифр. При этом для любой пары чисел с одинаковой суммой цифр первым должно стоять меньшее из этих чисел.   

Формат ввода:
Ввод из файла input.txt.
В 1-ой строке находится число n
2-ая строка: n чисел

Формат вывода:
Запись в файл output.txt.
n целых чисел через пробел в порядке возрастания сумм их цифр

Пример
input.txt                             output.txt
3                                        121 29 146

121 146 29  

Указание: Все числа поместим в массив А, суммы цифр данных чисел поместим в массив S. Далее воспользуемся алгоритмом сортировки элементов массива, причем, если суммы равны , то элементы меняются местами, если a[i]>a[i+1].     

          Тесты                      Посмотреть решение                      


Задания для самостоятельного решения

1. Дан линейный массив. Найти: сумму минимального и максимального элементов; количество отрицательных элементов, стоящих на чётных местах. Изменить массив, вычеркнув из него нечетные элементы.

Формат ввода:
Ввод из файла input.txt.
В 1-ой строке количество элементов массива – k
Во 2-й строке значения элементов массива

Формат вывода:
Запись в файл output.txt.
В 1-ой строке сумма минимального и максимального элементов;
Во 2-й строке количество отрицательных элементов, стоящих на чётных местах;
3-я строка измененный массив.

Пример
input.txt                               output.txt
7                                          
117
120 18 2 -3 4 2 -1 4               1
                                           18 -3 2 4

2. Дан линейный массив. Требуется определить количество элементов, значение которых больше, чем у соседних элементов массива.

Формат ввода:
Ввод из файла input.txt.
В 1-ой строке количество элементов массива – k
Во 2-й строке значения элементов массива

Формат вывода:
Запись в файл output.txt.
В строке количество элементов, значение которых больше, чем у соседних элементов массива.

Пример
input.txt                                        output.txt
10                                                   
5
2 15 0 125 -14 3 45 8 99 -147

3. Дан линейный массив целых чисел. Подсчитать сколько в нем различных чисел.

Формат ввода:
Ввод из файла input.txt.
В 1-ой строке количество элементов массива – k
Во 2-й строке значения элементов массива
Формат вывода:
Запись в файл output.txt.
В строке количество различных элементов элементов массива.

Пример
input.txt                                    output.txt
10                                              
6
21 5 8 125 -14 3 45 8 99 -14

4. Дан линейный массив неравных целых чисел. Упорядочить массив по возрастанию.

Формат ввода:
Ввод из файла input.txt.
В 1-ой строке количество элементов массива – k
Во 2-й строке значения элементов массива

Формат вывода:
Запись в файл output.txt.
В строке упорядоченный по возрастанию массив.

Пример
input.txt                                                      output.txt
15                                                               
-14 -5 -1 0 3 5 6 8 10 11 24 45 81 99 101 
6 11 81 5 -1 3 45 8 99 -14 101 -5 0 24 10

Тест