По разделам

 

Решение задачи File 22


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

Код (Python)

import random

def GenerateNumbers(fname):
    N = random.randint(1,15)
    print("N = ",N)
    L = []
    x = random.randrange(1,10)
    L.append(x)
    for i in range(1,N):
        lst_rnd = list(range(1,10))
        lst_rnd.remove(x)
        x = random.choice(lst_rnd)
        L.append(x)
    print(L)
    try:
        f = open(fname, "w")
        try:
            for x in L:
                line = str(x)+"\n"
                f.write(line)
        finally:
            f.close()
    except IOError:
        print('Write error: ',fname)

def EmptyFile(fname):
    open(fname, 'w').close()
    
def Write2File(fname,value):
    try:
        f = open(fname, "a")
        try:
            s = str(value)+'\n'
            f.write(s)
        finally:
            f.close()
    except IOError:
        print('Write error: ',fname)

f_input = "file22_input.txt"
GenerateNumbers(f_input)

f_output = "file22_output.txt"
EmptyFile(f_output)

i = 0
try:
    with open(f_input,'r') as f_in:
        for line in f_in:
            i += 1
            x = int(line.strip())
            print(x)    
            if i == 1:
                x1 = x
                print("Local extremum:",x1,"; Extremum line:",1)
                Write2File(f_output,1)
            elif i == 2:
                x2 = x
            elif i == 3:
                x3 = x
                if (x1 < x2 and x2 > x3) or (x1 > x2 and x2 < x3):
                    print("Local extremum:",x2,"; Extremum line:",i-1)
                    Write2File(f_output,i)
            else:
                x1 = x2
                x2 = x3
                x3 = x
                #print(x1,x2,x3)
                if (x1 < x2 and x2 > x3) or (x1 > x2 and x2 < x3):
                    print("Local extremum:",x2,"; Extremum line:",i-1)
                    Write2File(f_output,i)

except IOError:
    print('Open error: ',f_source)
    
if i == 2:
    print("Local extremum:",x2,"; Extremum line:",2)
    Write2File(f_output,2)
elif i >= 3:
    print("Local extremum:",x3,"; Extremum line:",i)
    Write2File(f_output,i)
									

Код (Pascal)

program File22;
var
 S:String;
 F_in: File of Real;
 F_out,F_out_temp: File of Integer;
 El2,El1,El:Real;
 temp,i,len:integer;
begin
  Write('File: ');
  Readln(S);
  Assign(F_in,S);
  Reset(F_in);
  Write('File_out: ');
  Readln(S);
  Assign(F_out,S);
  ReWrite(F_out);
  Assign(F_out_temp,'~'+S);
  ReWrite(F_out_temp);
  Read(F_in,El1);
  Read(F_in,El);
  El2:=El1;
  I:=1;
  if (El1<>El) then Write(F_out_temp,i);
  while (not eof(F_in)) do
   begin
    El2:=El1;
    El1:=El;
    Read(F_in,El);
    inc(i);
    if ((El<El1) and (El1>El2)) or ((El>El1) and (El1<El2)) then Write(F_out_temp,i);
   end;
  inc(i);
  if El1<>El then Write(F_out_temp,i);
  Close(F_in);
  Close(F_out_temp);
  Reset(F_out_temp);
  len:=1;
  while (not eof(F_out_temp)) do
   begin
    Read(F_out_temp,temp);
    inc(len);
   end;
  while (len>1) do
   begin
    Close(F_out_temp);
    Reset(F_out_temp);
    i:=1;
    while (not eof(F_out_temp)) and (i<>len) do
     begin
      Read(F_out_temp,temp);
      inc(i);
     end;
    Write(F_out,temp);
    Writeln(temp);
    dec(len);
   end;
  Close(F_out_temp);
&nbsp; erase(F_out_temp);
  Close(F_out);
end.
									




File. Абрамян
File 1 Просмотров: 4645
File 2 Просмотров: 3924
File 3 Просмотров: 1869
File 4 Просмотров: 2381
File 5 Просмотров: 1792
File 6 Просмотров: 1599
File 7 Просмотров: 1407
File 8 Просмотров: 1866
File 9 Просмотров: 1117
File 10 Просмотров: 1636
File 11 Просмотров: 1146
File 12 Просмотров: 1294
File 13 Просмотров: 1124
File 14 Просмотров: 1010
File 15 Просмотров: 916
File 16 Просмотров: 1158
File 17 Просмотров: 1343
File 18 Просмотров: 939
File 19 Просмотров: 812
File 20 Просмотров: 992
File 21 Просмотров: 846
File 22 Просмотров: 1014
File 23 Просмотров: 874
File 24 Просмотров: 870
File 25 Просмотров: 926
File 26 Просмотров: 900
File 27 Просмотров: 767
File 28 Просмотров: 1021
File 29 Просмотров: 789
File 30 Просмотров: 868
File 31 Просмотров: 772
File 32 Просмотров: 807
File 33 Просмотров: 875
File 34 Просмотров: 883
File 35 Просмотров: 676
File 36 Просмотров: 772
File 37 Просмотров: 654
File 38 Просмотров: 735
File 39 Просмотров: 749
File 40 Просмотров: 658
File 41 Просмотров: 708
File 42 Просмотров: 871
File 43 Просмотров: 652
File 44 Просмотров: 661
File 45 Просмотров: 721
File 46 Просмотров: 630
File 47 Просмотров: 762
File 48 Просмотров: 880
File 49 Просмотров: 773
File 50 Просмотров: 802
File 51 Просмотров: 784
File 52 Просмотров: 809
File 53 Просмотров: 640
File 54 Просмотров: 618
File 55 Просмотров: 691
File 56 Просмотров: 758
File 57 Просмотров: 594
File 58 Просмотров: 737
File 59 Просмотров: 691
File 60 Просмотров: 1196

Комментарии

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



Заявка на расчет