Program zadacha; var F,W:Array [1..10] of integer; k:integer; x:integer; y:integer; Sf:integer; Sw:integer; Begin F[1..10]:=(0,1,2,3,4,5,6,7,8,9); W[1..10]:=(0,1,2,3,4,5,6,7,8,9); Writeln('Write X: '); Readln(x); Writeln('Write Y: '); Readln(y); begin If x>y then Writeln('Error. Number X > Y !!!') else begin if x=y then Writeln('Error. Number X = Y !!!') else begin Sf:=0; Sw:=0; for k:=1 to 10 do begin; if (F[k]>=x) and (F[k]<=y) then begin Sf:=k+1; Writeln('Count elements > X = ', Sf); end; if (W[k]>=x) and (W[k]<=y) then begin Sw:=k+1; Writeln('Count elements < Y = ', Sw); end; end; end; end; End.
Помоему так =)
------------------------------
А насчёт компиляторов...
Я запускал програму на двух компиляторах ( Pascal ABC и Turbo Pascal 7.0 ) и оба выдавали ошибку в том месте где я говорил.
Проверить код и поинтересоваться насчёт массивов смогу только на следующей неделе.
Вот этот бегин явно лишний. Я же написал: в двух местах, а ты воткнул в трех. Кроме того, сосчитай-ка количество begin и количество end в скрипте. Их должно быть равное количество.
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
Program zadacha; var F,W:Array [1..10] of integer; k:integer; x:integer; y:integer; Sf:integer; Sw:integer; Begin Writeln('Write X: '); Readln(x); Writeln('Write Y: '); Readln(y); If x>y then Writeln('Error. Number X > Y !!!') else begin if x=y then Writeln('Error. Number X = Y !!!') else begin Sf:=0; Sw:=0; for k:=1 to 10 do begin F[k]:= k-1; W[k]:= k-1; if (F[k]>=x) and (F[k]<=y) then begin Sf:=k+1; end; if (W[k]>=x) and (W[k]<=y) then begin Sw:=k+1; end; end; Writeln('Count elements > X = ', Sf); Writeln('Count elements < Y = ', Sw); end; end; End.
Блин, что-то не так всё равно.
Ввожу x=2 y=7 , оно выдаёт
Count elements > X = 9
Count elements < Y = 9
Конечно не так. Потому что тебе советуют одно, а ты делаешь другое. Я тебе пишу куда вставить инициализацию массива, а ты ее втыкаешь в ж... Вот через эту самую ж... программа и работает.
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
Program zadacha; var F,W:Array [1..10] of integer; k:integer; x:integer; y:integer; Sf:integer; Sw:integer; Begin for k:=1 to 10 do begin F[k]:= k-1; W[k]:= k-1; end; Writeln('Write X: '); Readln(x); Writeln('Write Y: '); Readln(y); If x>y then Writeln('Error. Number X > Y !!!') else begin if x=y then Writeln('Error. Number X = Y !!!') else begin Sf:=0; Sw:=0; for k:=1 to 10 do begin if (F[k]>=x) and (F[k]<=y) then begin Sf:=k+1; end; if (W[k]>=x) and (W[k]<=y) then begin Sw:=k+1; end; end; Writeln('Count elements > X = ', Sf); Writeln('Count elements < Y = ', Sw); end; end; End.
Значит, что-то не так в логике реализации задачи. Я ведь и не пытался ее понять, я тебе указывал только на ошибки самой программы. А что ты хочешь от этой программы получить - это твое дело. Программа же работает. Если она не делает то, что нужно - значит она написана не так, как нужно.
Опиши задачу, напиши последовательный алгоритм (делаем то-то, получаем то-то, если то-то, то делаем то-то). А потом уже смотри, что же в программе не то. Не сможешь - кидай написанное сюда. Посмотрим. Но за тебя я это делать не буду.
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
Program zadacha1; const n=10; var F,W:Array [1..n] of integer; k:integer; x:integer; y:integer; Sf:integer; Sw:integer; Begin for k:=1 to n do begin F[k]:= k-1; W[k]:= k-1; end; Writeln('Enter X: '); Readln(x); Writeln('Enter Y: '); Readln(y); if x=y then Writeln('Error. Number X = Y !!!') else begin Sf:=0; Sw:=0; for k:=1 to n do begin if (F[k]>=x) and (F[k]<=y) then begin Sf:=n-x; end else begin Sf:=n-x end; if (W[k]>=x) and (W[k]<=y) then begin Sw:=y-1; end else begin Sw:=y-1; end; end; Writeln('Count elements > X = ', Sf); Writeln('Count elements < Y = ', Sw); end; End.