На сайте в режиме реального времени публикуются решения контестных задач сервиса Codeforces.
Загружайте свои решения( здесь ) прямо на сайте. Подробнее. Жду ваших решений
 

По разделам

 

Задача File 20


Дан файл вещественных чисел. Найти общее количество его локальных экстремумов, то есть локальных минимумов и локальных максимумов (определения локального минимума и локального максимума даны в заданиях File18 и File19).

Код (Python)

import random

def GenerateLine(fname):
    N = random.randrange(1,10)
    print("N = ",N)
    #N = 2
    #line = "1, 5, 5, 5, 4, 4, 5"
    try:
        f = open(fname, "w")
        try:
            for i in range(N):
                line = str(random.randint(1,4))+"\n"
                f.write(line)
        finally:
            f.close()
    except IOError:
        print('Write error: ',fname)

f_input = "file20_input.txt"
#GenerateLine(f_input)

unique_num = 0
extr_num = 2
try:
    with open(f_input,'r') as f_in:
        for line in f_in:
            x = int(line.strip())
            print(x)

            if unique_num > 0 and x == x_prev:
                #print(" : skipped")
                continue
            
            x_prev = x
            unique_num += 1
            if unique_num == 1:
                x1 = x
            elif unique_num == 2:
                x2 = x
            elif unique_num == 3:
                x3 = x
                #print("hello: {0},{1},{2}".format(x1,x2,x3))
                if (x1 < x2 and x2 > x3) or (x1 > x2 and x2 < x3):
                    extr_num += 1
            else:
                x1 = x2
                x2 = x3
                x3 = x
                if (x1 < x2 and x2 > x3) or (x1 > x2 and x2 < x3):
                    extr_num += 1
            #print(":",extr_num,":",unique_num)

except IOError:
    print('Open error: ',f_source)

print("unique_num: ",unique_num)

if unique_num == 1:
    extr_num = 1
elif unique_num == 2:
    extr_num = 2
    
print("Number of local extremums:",extr_num)
									

Код (Pascal)

program File20;
var
 S:String;
 F_in: File of Real;
 El2,El1,El:Real;
 NumEx:integer;
begin
  Write('File: ');
  Readln(S);
  Assign(F_in,S);
  Reset(F_in);
  NumEx:=0;
  Read(F_in,El1);
  Read(F_in,El);
  El2:=El1;
  if (El1<>El) then inc(NumEx);
  while (not eof(F_in)) do
   begin
    El2:=El1;
    El1:=El;
    Read(F_in,El);
    if ((El<El1) and (El1>El2)) or ((El>El1) and (El1<El2)) then inc(NumEx);
   end;
  if El1<>El then inc(NumEx);
  Writeln(NumEx);
  Close(F_in);
end.
									




File. Абрамян
File 1 Просмотров: 22
File 2 Просмотров: 18
File 3 Просмотров: 21
File 4 Просмотров: 18
File 5 Просмотров: 22
File 6 Просмотров: 13
File 7 Просмотров: 28
File 8 Просмотров: 11
File 9 Просмотров: 21
File 10 Просмотров: 18
File 11 Просмотров: 20
File 12 Просмотров: 25
File 13 Просмотров: 21
File 14 Просмотров: 14
File 15 Просмотров: 13
File 16 Просмотров: 21
File 17 Просмотров: 13
File 18 Просмотров: 17
File 19 Просмотров: 12
File 20 Просмотров: 16
File 21 Просмотров: 13
File 22 Просмотров: 12
File 23 Просмотров: 12
File 24 Просмотров: 13
File 25 Просмотров: 20
File 26 Просмотров: 14
File 27 Просмотров: 20
File 28 Просмотров: 20
File 29 Просмотров: 15
File 30 Просмотров: 16
File 31 Просмотров: 13
File 32 Просмотров: 14
File 33 Просмотров: 27
File 34 Просмотров: 21
File 35 Просмотров: 15
File 36 Просмотров: 13
File 37 Просмотров: 16
File 38 Просмотров: 22
File 39 Просмотров: 14
File 40 Просмотров: 14
File 41 Просмотров: 27
File 42 Просмотров: 19
File 43 Просмотров: 11
File 44 Просмотров: 21
File 45 Просмотров: 14
File 46 Просмотров: 12
File 47 Просмотров: 16
File 48 Просмотров: 15
File 49 Просмотров: 16
File 50 Просмотров: 16
File 51 Просмотров: 21
File 52 Просмотров: 13
File 53 Просмотров: 11
File 54 Просмотров: 12
File 55 Просмотров: 20
File 56 Просмотров: 14
File 57 Просмотров: 13
File 58 Просмотров: 19
File 59 Просмотров: 11
File 60 Просмотров: 15

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться