Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2009, 12:50   #1
Suslik-LICHNOST
Пользователь
 
Регистрация: 16.05.2009
Сообщений: 15
По умолчанию Легкая задачка для асов Паскаль Турбо

Дан массив Y длины n. Сформировать массив W по формуле:
Wi = 2 ∙ Yi + | Yi |. В массиве W вычислить сумму элементов, не удовлетво-ряющих условию a ≤ Wi < b.

Если кому-то по силам решить данную задачку - буду премного благодарен. Ваш Александр.
Suslik-LICHNOST вне форума Ответить с цитированием
Старый 16.05.2009, 13:14   #2
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var Y,W:array[1..100] of integer;
    i,n,S,a,b:integer;
begin
  { TODO -oUser -cConsole Main : Insert code here }
write('n= '); readln(n);
for i:=1 to n do
 begin
  write('Y[',i,']= ');
  readln(Y[i]);
 end;

for i:=1 to n do
 W[i]:=2*Y[i]+abs(Y[i]);

Writeln;
for i:=1 to n do
 Writeln('W[',i,']= ',W[i]);

write('a= ');Readln(a);
write('b= ');Readln(b);
S:=0;
for i:=1 to n do
 if (W[i]>=b)or(W[i]<a) then S:=S+W[i];
writeln;
Writeln('S= ',S);
readln;
end.
Жми на весы!!!

Последний раз редактировалось Chudo4258; 16.05.2009 в 13:17.
Chudo4258 вне форума Ответить с цитированием
Старый 16.05.2009, 14:01   #3
Suslik-LICHNOST
Пользователь
 
Регистрация: 16.05.2009
Сообщений: 15
По умолчанию

СПАСИБО огромное!!! Можно еще обратиться?
Suslik-LICHNOST вне форума Ответить с цитированием
Старый 16.05.2009, 14:03   #4
DM_bite
Участник клуба
 
Аватар для DM_bite
 
Регистрация: 29.07.2008
Сообщений: 1,091
По умолчанию

Цитата:
СПАСИБО огромное!!! Можно еще обратиться?
Валяй... Ждем... Только попробуй выкладывать свои наработки.
Кто бы ты ни был - не думай о себе слишком (с)
DM_bite вне форума Ответить с цитированием
Старый 16.05.2009, 14:04   #5
Suslik-LICHNOST
Пользователь
 
Регистрация: 16.05.2009
Сообщений: 15
По умолчанию

Все положительные элементы массива X занести в массив Y. Обнулить минимальный элемент в массиве Y.

Program Alex;
var x, y: array [1..10] of integer;
N, min, q, i: integer;
begin
writeln ('Vvedite N'); readln (N);
for i:=1 to N do
begin
write('Vvedite x[i]= '); readln (x[i]);
end;
q:=1;
for i:=1 to N do
begin
if x[i]>0 then begin y[q]:=X[i]; q:=q+1; end;
end;
min:=y[1];
for i:= 2 to q-1 do
if min>y[q] then min:=y[q];
min:=0;
for i:=1 to N do write (x[i],' ');
writeln (' - massiv X');
for i:=1 to q-1 do write (y[i],' ');
writeln ('- massiv Y');
readln;
end.

в чем ошибка? минимум не считает... и на 0 не заменяет... если не трудно - исправьте. Ваш Александр.
Suslik-LICHNOST вне форума Ответить с цитированием
Старый 16.05.2009, 14:29   #6
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

"for i:= 2 to q-1 do
if min>y[q] then min:=y[q];
min:=0;" ошибка в этой части.
Необходимо:
for i:= 2 to q-1 do
begin
if min>y[i] then
begin
min:=y[i];
zero:=i;
end;
end;
y[zero]:=0;

Переменная zero обозначает номер элемента который нужно обнулить
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 16.05.2009, 14:57   #7
Suslik-LICHNOST
Пользователь
 
Регистрация: 16.05.2009
Сообщений: 15
По умолчанию

Друг, я что-то опять не то написал....

Program Alex;
var x, y: array [1..10] of integer;
N, min, q, i, zero: integer;
begin
writeln ('Vvedite N'); readln (N);
for i:=1 to N do
begin
write('Vvedite x[i]= '); readln (x[i]);
end;
q:=1;
for i:=1 to N do
begin
if x[i]>0 then begin y[q]:=X[i]; q:=q+1; end;
end;
min:=y[1];
for i:= 2 to q-1 do
begin
if min>y[i] then
begin
min:=y[i];
zero:=i;
end;
end;
y[zero]:=0;
readln;
end.

не работает...
Suslik-LICHNOST вне форума Ответить с цитированием
Старый 16.05.2009, 15:18   #8
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Цитата:
Все положительные элементы массива X занести в массив Y. Обнулить минимальный элемент в массиве Y.
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var X,Y:array[1..100] of integer;
    i,n,min,k:integer;
begin
  { TODO -oUser -cConsole Main : Insert code here }
write('n= '); readln(n);
for i:=1 to n do
 begin
  write('X[',i,']= ');
  readln(X[i]);
 end;

k:=1;
for i:=1 to n do
 if X[i]>0 then begin
                      Y[k]:=X[i];
                      inc(k);
                    end;

Writeln;
for i:=1 to k-1 do  //выводим полученный массив Y
 Writeln('Y[',i,']= ',Y[i]);

writeln;
min:=Y[1]; // поиск min
for i:=2 to k-1 do
 if Y[i]<min then min:=Y[i];

for i:=1 to k-1 do
 if Y[i]=min then Y[i]:=0;

for i:=1 to k-1 do
  Writeln('Y[',i,']= ',Y[i]);

readln;
end.
Изображения
Тип файла: jpg тест.jpg (5.7 Кб, 148 просмотров)
Жми на весы!!!

Последний раз редактировалось Chudo4258; 16.05.2009 в 15:24.
Chudo4258 вне форума Ответить с цитированием
Старый 16.05.2009, 15:30   #9
Suslik-LICHNOST
Пользователь
 
Регистрация: 16.05.2009
Сообщений: 15
По умолчанию

Большое спасибо! Осталось немного задач. Можно еще воспользоваться помощью магистров? Ваш Александр.
Suslik-LICHNOST вне форума Ответить с цитированием
Старый 16.05.2009, 15:31   #10
Suslik-LICHNOST
Пользователь
 
Регистрация: 16.05.2009
Сообщений: 15
По умолчанию

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

Мои наброски:

Program Alex;
var x: array [1..5] of integer;
N, i, b, min: integer;
begin
clrscr
writeln ('Vvedite kol-vo elementov massiva'); readln (N);
for i:=1 to N do begin
write ('x[',i,']=');
readln (x[i]) end;
min:=x[1]; qwe:=1;
for i:=1 to N do
if min>x[i] then begin min:=x[i]; qwe:=i; end;
writeln ('Nomer minimalnogo elementa = ', qwe); readln;
for i:=1 to N do
begin
if (x[i] mod 2)=0 then begin min:=x[i];
min:=x[1];
for i:= 2 to N do
if min>x[i] then min:=x[i];
if (x[i] mod 2)=1 then x[i]:=x[i+1]
writeln (x[i], min);
end;
end;
end.
Suslik-LICHNOST вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Турбо Паскаль Maxsimo Паскаль, Turbo Pascal, PascalABC.NET 0 06.05.2009 17:05
Легкая задачка Васька Паскаль, Turbo Pascal, PascalABC.NET 1 29.11.2008 14:55
Турбо Паскаль Jondeer Помощь студентам 3 28.10.2007 12:42
Турбо Паскаль Jondeer Помощь студентам 5 27.10.2007 17:19