Forum of Computer Science Faculty of Baku State University

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Forum of Computer Science Faculty of Baku State University » Programming » Экзамен


Экзамен

Сообщений 1 страница 50 из 120

1

ЭКЗАМЕНАЦИОННЫЕ ВОПРОСЫ
«ИНФОРМАТИКА»
1 курс, I семестр 2009-2010 уч. г.  Январь 2010 г.

1.Типы данных в языке Паскаль. Обзор. Примеры.
2.Язык Паскаль. Целый тип. Разновидности и характеристики.
3.Язык Паскаль. Действительный тип. Разновидности и характеристики.
4.Язык Паскаль. Операция присваивания и приведение типов.
5.Язык Паскаль. Структура программы.
6.Язык Паскаль. Ввод, вывод.
7.Язык Паскаль. Оператор IF. Примеры использования.
8.Язык Паскаль.  Работа с цифрами числа.
9.Язык Паскаль. Организация циклических вычислений при помощи  FOR….DO.   
10.Язык Паскаль. Организация циклических вычислений при помощи  WHILE…DO.
11.Язык Паскаль. Организация циклических вычислений при помощи  REPEAT…UNTIL.
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.Алгоритм и программа определения, является ли число простым.
45.Алгоритм и программа обхода двумерного массива по спирали..
46.Алгоритм и программа генерации парестановок.
47.Алгоритм и программа нахождения в двумерном массиве седловой точки.
48.Динамическое программирование. Задача о джипе.
49.Динамическое программирование. Задача о черепашке.
50.Динамическое программирование. Задача о треугольнике чисел.
ЗАДАЧИ
51.Даны целые числа n, a1, a2,…, an.  Найти наибольший элемент.
52.Даны целые числа n, a1, a2,…, an. Найти номер наименьшего элемента..
53.Даны целые числа n, a1, a2,…, an. Найти наименьший положительный элемент.
54.Даны целые числа n, a1, a2,…, an. Найти наибольший отрицательный элемент.
55.Даны целые числа n, a1, a2,…, an. Найти разность    между наименьшим положительным элементом и наибольшим отрицательным элементом.
56.Даны целые числа n, a1, a2,…, an. Найти наибольшее количество подряд идущих нулей.
57.Даны целые числа n, a1, a2,…, an. Найти количество перемен знаков.
58.Даны целые числа n, a1, a2,…, an. Найти наибольшее количество подряд идущих равных элементов.
59.Даны целые числа n, a1, a2,…, an. Найти количество простых чисел.
60.Даны целые числа n, a1, a2,…, an.  Найти количество чисел, являющихся палиндромами.
61.Найти все трехзначные числа Амстронга- сумма цифр которых равны самому числу. Например 153 = 13 + 53 + 33 .
62.Даны целые числа n, a1, a2,…, an. Найти наибольшую  сумму подряд  идущих элементов.
63.Даны натуральные числа  n, a1, a2,…, an. Определить количество членов последовательности a1, a2,…, an которые являются удвоенными нечетными числами
64.Даны натуральные числа  n, a1, a2,…, an. Определить количество членов последовательности a1, a2,…, an которые при делении на 7 дают остаток 1, 2 или 3
65.Даны натуральные числа  n, a1, a2,…, an. Определить количество членов последовательности a1, a2,…, an которые кратные 3 и не кратные 5
66.Даны натуральные числа  n, a1, a2,…, an. Определить количество членов последовательности a1, a2,…, an являющихся квадратами нечетных чисел
67.Даны натуральные числа  n, a1, a2,…, an. Определить количество членов последовательности a1, a2,…, an являющихся квадратами четных  чисел
68.Даны натуральные числа  n, a1, a2,…, an. Определить количество членов последовательности a1, a2,…, an которые нечетны и стоят на нечетных места
69.Найти все натуральные числа, не превосходящие N<1000, и делящиеся на каждую из  своих цифр.
70.Найти все простые числа между заданными  N1 и  N2.
71.Найти все натуральные числа, не превосходящие N<1000 и представимые в виде суммы квадратов двух  различных, натуральных  чисел
72.Два простых числа называются "близнецами", если они отличаются друг от друга на 2 ( например числа  41 и 43  -  "близнецы"). Найти всех "близнецов"  не превосходящих  N (N < 10000).
73.Два натуральных числа называются дружественными, если каждое из них равно сумме делителей другого, кроме самого этого числа. Найти все пары дружественных чисел, лежащих в диапазоне от M  до  N  ( M < N < 10000)
74.Натуральное число называется совершенным, если оно равно сумме всех своих делителей, за исключением самого себя. Например, число 6 совершенное, так как 6 =  1 + 2 + 3. Дано натуральное число N < 10000. Найти все совершенные числа, меньшие N.
75.Даны целые числа   a1, a2,…, an (среди них могут быть повторяющиеся) ) Получить все числа, входящие в последовательность по одному разу
76.Даны целые числа   a1, a2,…, an (среди них могут быть повторяющиеся) Получить числа, взятые по одному из каждой группы равных членов
77.Даны целые числа   a1, a2,…, an (среди них могут быть повторяющиеся) Определить количество чисел, входящих в последовательность более чем один раз
78.Даны целые числа   a1, a2,…, an (среди них могут быть повторяющиеся) Определить число соседств  двух положительных чисел
79.Даны целые числа   a1, a2,…, an (среди них могут быть повторяющиеся) Определить число соседств  двух чисел разного знака
80.Найти все трехзначные числа, обладающие свойством: число делится на все свои цифры
81.Найти все трехзначные числа, обладающие свойством: число, полученное записью цифр этого числа в обратном порядке, делится на все свои цифры.
82.Определить   количество шестизначных "счастливых" чисел,  у которых сумма первых трех цифр совпадает с суммой трех последних
83.Определить   количество 2N -значных "счастливых" чисел,  у которых сумма первых N цифр равна сумме последних N цифр; N -произвольное натуральное число.
84.Вводится N.  Необходимо найти,  на сколько нулей оканчивается число  N!=1*2*3*...*N.
85.Даны натуральные числа n, a1, a2,…, an. (n<10000). Определить наименьшее натуральное число, отсутствующее в этой последовательности
86.Даны действительные числа а1, а2,.., an. (а1>0). Вычислить до первого отрицательного числа: a1  +  a2   +  a3 . . .;
87.Даны действительные числа а1, а2,.., an. (а1>0). Вычислить до первого отрицательного числа: a1a2a3.  .
88. Даны действительные числа а1, а2,.., an. (а1>0). Вычислить до первого отрицательного числа: среднеарифметическое   а1, а2, a3.
Даны натуральное число n   и действительные числа a1, a2,…, an. Найти:
89.http://depositfiles.com/files/qhuxx8dy1
90.http://depositfiles.com/files/qhuxx8dy1
91.Вывести в  порядке  возрастания все обыкновенные несократимые дроби,  заключенные между 0 и 1,  знаменатели которых не превышают 15. Массив при этом заводить не следует.
92.  Даны целые m и n (n,m <10000) и действительные числа a1, a2,…, an. Найти целое число i (1<=i<=n-m), для которого сумма    ai+ ai+1+…+ ai+m ближе всего к нулю.
93.Даны натуральное число n   и действительные числа a1, a2,…, an Переместить: отрицательные  элементы массива в начало, сдвинув положительные элементы в конец, не меняя взаимное расположение ни отрицательных, ни положительных элементов
94.Даны натуральное число n   и действительные натуральные числа a1, a2,…, an Переместить: элементы массива так, чтобы вначале шли числа, делящиеся на 3,  затем числа, дающие при делении на 3 остаток 1,     затем числа, дающие при делении на 3 остаток 2.
95.Дана последовательность целых чисел. Найти в ней наименьшее четное число.
96. Даны два массива чисел. Требуется создать массив из тех  элементов первого массива (в том порядке, в каком они идут в первом массиве), которых нет во втором массиве.

97.Даны целые числа n, a1, a2,…, an. (n<10000). Найти наибольшую  сумму подряд  идущих элементов.
98.Даны натуральные числа  n, a1, a2,…, an. Определить количество членов последовательности a1, a2,…, an которые являются удвоенными нечетными числами
99.Даны натуральные числа  n, a1, a2,…, an. Определить количество членов последовательности a1, a2,…, an которые при делении на 7 дают остаток 1, 2 или 3
100.Даны натуральные числа  n, a1, a2,…, an. Определить количество членов последовательности a1, a2,…, an которые кратные 3 и не кратные  5
101.Даны натуральные числа  n, a1, a2,…, an. Определить количество членов последовательности a1, a2,…, an являющихся квадратами нечетных чисел
102.Даны натуральные числа  n, a1, a2,…, an. Определить количество членов последовательности a1, a2,…, an являющихся квадратами четных  чисел
103.Даны натуральные числа  n, a1, a2,…, an. Определить количество членов последовательности a1, a2,…, an которые нечетны и стоят на нечетных места
104.Найти все натуральные числа, не превосходящие N<1000, и делящиеся на каждую из  своих цифр
105.Найти все натуральные числа, не превосходящие N<1000 и представимые в виде суммы квадратов двух  различных, натуральных  чисел
106.Два простых числа называются "близнецами", если они отличаются друг от друга на 2 ( например числа  41 и 43  -  "близнецы"). Найти всех "близнецов"  не превосходящих  N (N < 10000).
107.Два натуральных числа называются дружественными, если каждое из них равно сумме делителей другого, кроме самого этого числа. Найти все пары дружественных чисел, лежащих в диапазоне от M  до  N  ( M < N < 10000)
108.Дано натуральное число N < 10000. Найти все совершенные числа, меньшие N
109.Даны целые числа   a1, a2,…, an (среди них могут быть повторяющиеся) ) Получить все числа, входящие в последовательность по одному разу
110.Даны целые числа   a1, a2,…, an (среди них могут быть повторяющиеся) Получить числа, взятые по одному из каждой группы равных членов
111.Даны целые числа   a1, a2,…, an (среди них могут быть повторяющиеся) Определить количество чисел, входящих в последовательность более чем один раз
112.Даны целые числа   a1, a2,…, an (среди них могут быть повторяющиеся) Определить число соседств  двух положительных чисел
113.Даны целые числа   a1, a2,…, an (среди них могут быть повторяющиеся) Определить число соседств  двух чисел разного знака
114.Найти все трехзначные числа, обладающие свойством: число делится на все свои цифры
115.Найти все трехзначные числа, обладающие свойством: число, полученное записью цифр этого числа в обратном порядке, делится на все свои цифры.
116.Определить   количество шестизначных "счастливых" чисел,  у которых сумма первых трех цифр совпадает с суммой трех последних
117.Вводится N.  Необходимо найти,  на сколько нулей оканчивается число  N!=1*2*3*...*N.
118.Даны натуральные числа n, a1, a2,…, an. (n<10000). Определить наименьшее натуральное число, отсутствующее в этой последовательности
119.Даны действительные числа а1, а2,.., an. (а1>0). Вычислить до первого отрицательного числа: a1  +  a2   +  a3 . . .;
120.Даны действительные числа а1, а2,.., an. (а1>0). Вычислить до первого отрицательного числа: a1a2a3.  .
121. Даны действительные числа а1, а2,.., an. (а1>0). Вычислить до первого отрицательного числа: среднеарифметическое   а1, а2, a3.
122.Является ли последовательность арифметической прогрессией? (Если да, вы­вести a1 и d)
123.Является ли последовательность геометрической прогрессией? (Если да, выве­сти b1 и q).
124.Ввести с клавиатуры число и определить сколько раз оно встречается в массиве.
125.Ввести с клавиатуры число и определить порядковый номер первого числа в массиве, равного введенному

Выражаем глубокую благодарность Раминну Назимовичу за предоставление экзамеционных вопросов.

+2

2

вы меня изивините конешно,но ******........

(Отредактировано администрацией . Не нормативная лексика . Бан 3 дня)

Отредактировано Jahangir Najafov (2009-12-26 17:03:20)

0

3

Джака скажи пожалуйста,где я могу достать оригинальный  лист экзаменционных вопросов по информатике:dontknow:

0

4

ruvinbgu написал(а):

Джака скажи пожалуйста,где я могу достать оригинальный  лист экзаменционных вопросов по информатике:dontknow:

В нашей группе многие сделали ксерокс. Также копии есть и у студентов из ТК-06. Из своих одногрупников я точно имена не помню, а вот в ТК-06 точно есть у Беллы и Ульви.

0

5

кто решит эту задачу?
57.Даны целые числа n, a1, a2,…, an. Найти количество перемен знаков.

0

6

prosto tofik написал(а):

кто решит эту задачу?57.Даны целые числа n, a1, a2,…, an. Найти количество перемен знаков.

Код:
for i:=1 to N-1 do
    if ((A[i]>0) and (A[i+1]<0)) or ((A[i]<0) and (A[i+1]>0)) then INC(q);

+1

7

Точно не уверен,но ответ верен :dontknow:

57)
CONST
NA=1000;
VAR
f1,f2:text;
k,i,j:integer;
A:array[1..NA]of integer;
BEGIN
assign(f1,'13_2c.txt');
reset(f1);
for i:=1 to NA do
  readln(f1,A[i]);
close(f1);
k:=0;
for i:=1 to NA do
  begin
   j:=NA-(i-1);
   if ((A[j]>0) and (A[j-1]<0))or((A[j]<0)and(A[j-1]>0)) then inc(k)
  end;
  assign(f2,'13_2z.txt');
  rewrite(f2);
  writeln(f2,k-1);
  close(f2);
END.

+3

8

Джака ты меня опять опередил :tired:

+1

9

Рувин не ожет посетить сейчас форум, поэтому я внесу поправку в код.

ruvinbgu написал(а):

CONST NA=1000;
VAR
f1,f2:text;
k,i,j:integer;
A:array[1..NA]of integer;

(Со слов автора мне известно, что вышеупомянутый код из задачи с учловием чтения из файла)

Так как в условии задачи говорится :

prosto tofik написал(а):

Даны целые числа n, a1, a2,…, an.

,поэтому массив должен быть задан в разделе CONST-ант. Об этом говорил Рамин Назимович.

0

10

49)Задача про черепашку для квадрата!!!Для прямоугольника в нужных местах меняем N на M :tomato:

CONST
N=3;
A:array[1..N,1..N]of longint=((5,9,1),
                                            (9,3,5),
                                            (9,6,7));
VAR
B:array[1..100,1..100]of longint;
i,j,k,l:integer;
BEGIN
for i:=1 to N do
  for j:=1 to N do
   B[i,j]:=A[i,j];
for i:=N-1 downto 1 do
  B[1,i]:=B[1,i]+B[1,i+1];
for i:=2 to N do
  B[i,N]:=B[i,N]+B[i-1,N];
  k:=N-1;
for l:=1 to N-1 do
  begin
   for i:=1 to N-1 do
    if B[i,k]>B[i+1,k+1] then B[i+1,k]:=B[i+1,k]+B[i,k]
                         else B[i+1,k]:=B[i+1,k]+B[i+1,k+1];
   dec(k);
  end;
write(B[N,1]);
END.

+2

11

Верно у меня ERROR для работы до NA,надо задать N и работать до него :blush:

0

12

ruvinbgu написал(а):

Верно у меня ERROR для работы до NA,надо задать N и работать до него

Кому направлен этот ответ?

0

13

Тебе об исправлении!А остальное форуму ;)

+1

14

Jahangir Najafov написал(а):

(Со слов автора мне известно, что вышеупомянутый код из задачи с учловием чтения из файла)
Так как в условии задачи говорится :
prosto tofik написал(а):
Даны целые числа n, a1, a2,…, an.,поэтому массив должен быть задан в разделе CONST-ант. Об этом говорил Рамин Назимович

esli zadat massiv v razdele const to yasno cto on doljen bit vmeste s elementami, a razve massiv ne doljen bit pustim kogda v nego citayut cisla is fayla?

0

15

prosto tofik написал(а):

esli zadat massiv v razdele const to yasno cto on doljen bit vmeste s elementami, a razve massiv ne doljen bit pustim kogda v nego citayut cisla is fayla?

дело в том, что и читать то не надо. Говорят, что "Даны целые числа". Значить уже есть. А массив это лишь форма обработки чисел в программе, т.е. для user-a ,автора задачи и тестера он, вообще говоря, ( :rolleyes: ) значения не имеет.

+1

16

Всем привет!!я тут на  одну задачку наткнулся,вроде безобидная,но все же.....условие такое:Даны числа n,a1,a2......найти наибольшее количество подряд идущих нулей......я могу найти количество подряд идущих нулей,если имеется только  один ряд....вот так:

Var
  copy,k,i:integer;
begin
   copy:=0; k:=0;
     for i:=1 to n do
       if A[i]=0 then k:=inc(k);
begin
    if k>copy then copy:=k;  k:=0;
end;
  writeln(copy);
end.

,а как найти ,если имеется несколько рядов подряд идущих нулей (пример:(1,0,0,0,7,4,0,0,0,0,0,7,6));
;le!

0

17

Джаха,а нельзя создать форум и выкладывать там решения на наш экзамен?!!все смогут зайти,посмотреть и сдать экз!!как думаешь?или авторские права защищены?))

+2

18

Channing Tatum написал(а):

Всем привет!!я тут на  одну задачку наткнулся,вроде безобидная,но все же.....условие такое:Даны числа n,a1,a2......найти наибольшее количество подряд идущих нулей......я могу найти количество подряд идущих нулей,если имеется только  один ряд....вот так:
             Var  copy,k,i:integer;begin   copy:=0; k:=0;     for i:=1 to n do       if A[i]=0 then k:=inc(k); begin    if k>copy then copy:=k;  k:=0;end;  writeln(copy);end.
            ,а как найти ,если имеется несколько рядов подряд идущих нулей (пример:(1,0,0,0,7,4,0,0,0,0,0,7,6));;le!

Зачем тебе писать k:=inc(k); необходимо и достаточно писать inc(k);:sceptic: И зачем тебе begin после   for i:=1 to n do
                                                                                                                                                              if A[i]=0 then k:=inc(k);
наверняка ты хотел чтобы этот begin относился к for.....А т.к без for читает только следущую строчку(без begin)то твои begin и end вообще говоря не имеют смысла :)

Но чуть-чуть дороботав ты её сделаешь(я в тебя верю) :cool:

0

19

дык сначала я сделал без 2-ого begin,а он мне ошибку выдал!!думаешь мне нравится  использовать 2 раза begin?)ему это самому не нравится))на счет inc(k) тоже понял,спс!! а как на счет главного вопроса??----> как найти ,если имеется несколько рядов подряд идущих нулей (пример:(1,0,0,0,7,4,0,0,0,0,0,7,6))

0

20

Channing Tatum написал(а):

Джаха,а нельзя создать форум и выкладывать там решения на наш экзамен?!!все смогут зайти,посмотреть и сдать экз!!как думаешь?или авторские права защищены?))

А зачем ещё что-то созават, если форум уже есть?  :)  Давайте вот тут и будем размещать вопросы и ответы. Рамин Назимовичь сам даже рекомендовал, так что за решётку за нарушение авторских прав мы в ближайшее время, Иншаллах, не попадём.

Давайте, кто что решит, проверит, пусть сразу сюда выставляет.

0

21

Channing Tatum написал(а):
Код:
Var
  copy,k,i:integer;
begin
   copy:=0; k:=0;
     for i:=1 to n do
       if A[i]=0 then k:=inc(k);
begin
    if k>copy then copy:=k;  k:=0;
end;
  writeln(copy);
end.

,а как найти ,если имеется несколько рядов подряд идущих нулей (пример:(1,0,0,0,7,4,0,0,0,0,0,7,6));

Нашел алгоритмическую ошибку.
Обратим внимание на строчку

if k>copy then copy:=k;  k:=0;

.  Обратите внимание, ведь copy=0 до прихода к этой строчке.
А, по-сути, когда мы должны проводить эту проверку? В том случае, когда последовательность закончилась. Т.е. данный элемент в массиве не равен 0 (A[i]<>0).

Напишу программу, отправлю.

0

22

Jahangir Najafov написал(а):

Напишу программу, отправлю.

Вот собственно и сам код.

56.Даны целые числа n, a1, a2,…, an. Найти наибольшее количество подряд идущих нулей.

Код:
CONST
   N=13;
   A:array[1..N] of integer=(1,0,0,0,7,4,0,0,0,0,0,7,6);
Var
  kmax,k,i:integer;
begin
   kmax:=0; k:=0;
   for i:=1 to n do
     if A[i]=0 then inc(k)
                  else
      if k>kmax then 
        begin
          kmax:=k;  
          k:=0;
        end;
   if (A[n]=0) and (k>kmax) then
      kmax:=k;
   writeln(kmax);
end.

0

23

Джака,плиз напиши программу задачи о джипе...

0

24

Бабахан написал(а):

Джака,плиз напиши программу задачи о джипе...

Ооо...
Birincisi, там суть не в программе, а в алгоритме.
Ikincisi ise, Я её ПОКА не знаю.

0

25

Бабахан написал(а):

Джака,плиз напиши программу задачи о джипе...

На неё достаточно написать ход действия,а программа скорее всего,задаётся какой-либо мат. формулой или ёщё что-то вроде этого(а в решение я полностью согласен с Джакой :dontknow: )

0

26

эй теклкмисиз?....вроде чего и как?

0

27

Jahangir Najafov
Спс за алгоритм))давай начнем выставлять подряд все задания!!)

0

28

Channing Tatum написал(а):

Спс за алгоритм))давай начнем выставлять подряд все задания!!)

Конечно.

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

0

29

Вижу нету добровольцев!!начну я!!
84.Вводится N.  Необходимо найти,  на сколько нулей оканчивается число  N!=1*2*3*...*N.

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

0

30

Гляньте ,что я нашел)))думаю вам понравится..

Задание 48. Задача о Джипе

Условие
Джип может пересечь пустыню, потратив 2 бака горючего, а имеет на борту только один. Заправочная станция находится в начале пустыни. В любой точке пустыни можно делать неограниченные запасы горючего. Определить минимум горючего, достаточный для пересечения пустыни и описать последовательность действий джипа. Написать программу и(или) выполнить алгоритмическое описание решения.

Решение
Понятно, что чем меньшее расстояние проедет джип, тем меньше горючего он израсходует. Вторую половину пути джип может проехать за один прием, если в середине пустыни (это будет последняя база) у него будет 1 бак горючего. Однако первую часть пути джипу придется преодолевать в несколько приемов.

Определим отрезок пути, который джипу достаточно проехать 3 раза (один раз съездить вперед, вернуться и еще раз проехать вперед). Максимальное количество горючего, которое джип может взять в начале такого отрезка - 2 бака. Из них 1 бак должен быть доставлен к середине пустыни. Оставшееся горючее можно израсходовать на данном отрезке пути. Таким образом, максимальная длина данного отрезка определяется как (2-1)/3=1/3 (отрезки пути мы измеряем в баках горючего, необходимого для того, чтобы их проехать) – это расстояние от предпоследней базы до последней.

По аналогии, отрезок пути, который достаточно проехать 5 раз (3 раза вперед и 2 – назад) равен (3-2)/5=1/5. И так далее. 4 бака горючего позволяют проехать отрезок 1/7+1/5+1/3+1. 7 баков – 1/13+1/11+1/9+1/7+1/5+1/3+1. Это меньше 2 - длины пустыни, однако, 8 баков хватает с избытком.

Точно подсчитать количество горючего можно, прибавив к 7 бакам горючее, необходимое для доставки 7 баков на первую базу (за 7 полных рейсов и один рейс в одну сторону). Это 7+(2-(1/13+1/11+1/9+1/7+1/5+1/3+1))*15.

Итак, обозначив конец пустыни через x0, последнюю базу в середине пустыни – x1, предыдущую – x2 и т.д., первую базу – x7, начало пустыни – x8, мы можем записать алгоритм следующим образом:
for i := 7 downto 0 do begin
    for j := 1 to i do begin
        заправиться горючим
        отвезти горючее к базе xi
        выгрузить горючее
        вернуться назад к базе xi+1
    end
    заправиться горючим
    отвезти горючее к базе xi
end

И как?

0

31

В такой краткости мне помог Рамин Назимович:
84)
var s,n,k:longint;
Begin
readln(n);
k:=5;
s:=0;
  repeat
   s:=s+n div k;
   k:=k*5;
   until k>n;
  write(s);
end.

+1

32

55)
CONST
N=10;
A:array[1..N]of integer=(1,0,-5,2,-1,3,12,9,-7,-12);
VAR
i,mao,mip:integer;
BEGIN
mip:=0; mao:=0;
for i:=1 to N do
  begin
   if ((A[i]<mip)or(mip=0))and(A[i]>0) then mip:=A[i];
   if ((A[i]>mao)or(mao=0))and(A[i]<0) then mao:=A[i];
  end;
  if (mip<>0)and(mao<>0) then write(mip-mao);
END.

0

33

Jahangir Najafov написал(а):

Код:CONST
   N=13;
   A:array[1..N] of integer=(1,0,0,0,7,4,0,0,0,0,0,7,6);
Var
  kmax,k,i:integer;
begin
   kmax:=0; k:=0;
   for i:=1 to n do
     if A[i]=0 then inc(k)
                  else
      if k>kmax then
        begin
          kmax:=k; 
          k:=0;
        end;
   if (A[n]=0) and (k>kmax) then
      kmax:=k;
   writeln(kmax);
end.

Джаки сейчас нет на месте поэтому я внесу в код небольшое изменение

56)Код:
CONST
   N=13;
   A:array[1..N] of integer=(1,0,0,0,7,4,0,0,0,0,0,7,6);
Var
  kmax,k,i:integer;
begin
   kmax:=0; k:=0;
   for i:=1 to n do
     if A[i]=0 then inc(k)
                  else
     begin
      if k>kmax then kmax:=k; 
      k:=0;
     end;
   if (A[n]=0) and (k>kmax) then
      kmax:=k;
   writeln(kmax);
end.

+1

34

Всех с наступающим!!)
Рувин,я задачу 55 немного по другому сделал!!посмотри....

CONST
   N=13;
   A:array[1..N] of integer=(1,0,0,0,7,4,0,0,0,0,0,7,6);
Var
  raz,max,min,i:integer;
begin
  min:=A[i];
    for i:=2 to n do
      if (A[i]<min) and (A[i]>0) then min:=A[i];
    begin
       max:=A[1] ;
        for i:=2 to n do
         if A[i]<max then max:=A[i];
       end;
    raz:=min-max;
  writeln(raz);
end.

вроде как работает!!если будут вопросы пиши на форму!!))

Отредактировано Channing Tatum (2009-12-31 19:06:20)

+1

35

Channing Tatum написал(а):

CONST   N=13;   A:array[1..N] of integer=(1,0,0,0,7,4,0,0,0,0,0,7,6);Var  raz,max,min,i:integer;begin  min:=A[i];     for i:=2 to n do      if (A[i]<min) and (A[i]>0) then min:=A[i];    begin       max:=A[1] ;        for i:=2 to n do         if A[i]<max then max:=A[i];       end;    raz:=min-max;  writeln(raz); end.

Ты не имеешь право писать min:=A[i] так как ты не присвоил i какое либо значение(а Pascal думает что i:=0,но min элемента А[min] может быть>= 1)
Тебе также не нужно столько beginov ещё A[i](max) должен быть <0,а ты это пропускаешь(т.к у тебя последовательность из полож. членов тебе кажется что всё в порядке) :playful:

0

36

min:=A[i] это отпечатка,я ее не заметил!!)а то  я и в max:=A[i] :crazy: я просто нахожу минимальный элемент массива)вроде все

0

37

Channing Tatum написал(а):

min:=A[i] это отпечатка,я ее не заметил!!)а то  я и в max:=A[i] написал бы))я просто нахожу минимальный элемент массива)вроде все

Как ты используешь этот ряд,если там нет отрицательного элемента :question:

0

38

это ваш ряд))я его скопировал!!а так работает...проверь!!)меньше слов,больше дела))

0

39

Channing Tatum написал(а):

это ваш ряд))я его скопировал!!а так работает...проверь!!)меньше слов,больше дела))

ЕСТЬ СЭР!!! :mybb:

+1

40

)))

0

41

Jahangir Najafov написал(а):

дело в том, что и читать то не надо. Говорят, что "Даны целые числа". Значить уже есть. А массив это лишь форма обработки чисел в программе, т.е. для user-a ,автора задачи и тестера он, вообще говоря, (  ) значения не имеет.

ti je napisal:  (Со слов автора мне известно, что вышеупомянутый код из задачи с учловием чтения из файла)
ya sprosil na scot etogo у Ramin Nazimovica, on skazal cto prosto nado zadat massiv v razdele const, t.e pri reshenii takix zadac kak  Даны целые числа n, a1, a2,…, an
cteniye iz fayla ne nujno

0

42

ruvinbgu написал(а):

56)Код:
CONST
   N=13;
   A:array[1..N] of integer=(1,0,0,0,7,4,0,0,0,0,0,7,6);
Var
  kmax,k,i:integer;
begin
   kmax:=0; k:=0;
   for i:=1 to n do
     if A[i]=0 then inc(k)
                  else
     begin
      if k>kmax then kmax:=k; 
      k:=0;
     end;
   if (A[n]=0) and (k>kmax) then
      kmax:=k;
   writeln(kmax);
end.

a zdes v konce ne nado pisat: (A[n]=0), eto lishnee. mojno oboytis bez etogo prosto napisav if k>kmax then kmax:=k;

+1

43

ruvinbgu написал(а):

55)
CONST
N=10;
A:array[1..N]of integer=(1,0,-5,2,-1,3,12,9,-7,-12);
VAR
i,mao,mip:integer;
BEGIN
mip:=0; mao:=0;
for i:=1 to N do
  begin
   if ((A[i]<mip)or(mip=0))and(A[i]>0) then mip:=A[i];
   if ((A[i]>mao)or(mao=0))and(A[i]<0) then mao:=A[i];
  end;
  if (mip<>0)and(mao<>0) then write(mip-mao);
END

vot moy variant

const
n=10;
a:array[1..n] of integer=(-56,1000,95,70,42,20,-76,99,100,-5);
var
i,k,s,m,j,max,min:integer;
  begin
    k:=1;
    while (a[k]<0) do inc(k);
    min:=a[k];
    for i:=k+1 to n do
    if (a[i]>0) and (a[i]<min) then min:=a[i];
    m:=1;
    while (a[m]>0) do inc(m);
    max:=a[m];
    for j:=m+1 to n do
    if (a[j]<0) and (a[j]>max) then max:=a[j];
    writeln('r=',min-max);
    readln;
  end.

0

44

43.Алгоритм и программа вычисления НОД и НОК..помогите как надо делать?  :question:

0

45

prosto tofik написал(а):

a zdes v konce ne nado pisat: (A[n]=0), eto lishnee. mojno oboytis bez etogo prosto napisav if k>kmax then kmax:=k;

VSE verno :cool:

0

46

prosto tofik написал(а):

constn=10;a:array[1..n] of integer=(-56,1000,95,70,42,20,-76,99,100,-5);vari,k,s,m,j,max,min:integer;  begin    k:=1;    while (a[k]<0) do inc(k);    min:=a[k];    for i:=k+1 to n do    if (a[i]>0) and (a[i]<min) then min:=a[i];    m:=1;    while (a[m]>0) do inc(m);    max:=a[m];    for j:=m+1 to n do    if (a[j]<0) and (a[j]>max) then max:=a[j];    writeln('r=',min-max);    readln;  end.

Vse verno na exam naverno tak i nujno prosto esli u teba budet rad sostoya6iy tolko iz nuley(a zdes ne skazanno 4to imeetsa xotabi 1 otricat. i 1 polojit.),togda otvet budet=0,a eto protivore4it usloviyu raznosti mejdu polojitelnim i otricatelnim t.k ix raznost>0 :idea:

0

47

Бабахан написал(а):

43.Алгоритм и программа вычисления НОД и НОК..помогите как надо делать?

Это есть в пособие Рамина Назимовича(лентяй :rofl: )

0

48

решение есть? :cool:

0

49

Бабахан написал(а):

решение есть?

Пример 6.4.

0

50

:D и в правду))

0


Вы здесь » Forum of Computer Science Faculty of Baku State University » Programming » Экзамен