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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2011, 13:06   #1
VaLenOK007
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 25
Злость Адаптация заданий на Pas

Привет программеры! Кто сможет, упростите эти задачки, ну чтоб как для детского сада было. Не принимают лабы, к экзамену не допускают, говорят слишком сложно) Я не знаю как ещё проще сделать!
Кому надо, смысл заданий сверху кода:

дан одномерный массив Xn, найти кол-во элементов массива, делящихся на 3 без остатка. Напечатать все элементы, знач которых отрицательно
Код:
program a1;
uses crt;
var a: array [1..100] of integer;
s,d,f,i,n:integer;
begin
clrscr;
writeln ('wwedite razmernosti ne bolee 100');
readln(n);
for i:=1 to n do begin
a[i]:= random (100)-50;
if a[i] mod 3 = 0 then s:=s+1;
if a[i] <0 then writeln (a[i]);
end;
writeln ('na 3 bez ostatka delitsya ', s,' elementov.');
readkey
end.
Дан одномерный массив Yn. Все элементы со значениями в интервале CD заменить на среднее арифметическое элементов, с нечетными значениями[
Код:
uses crt;
const n=100;
var y:array[1..n]of integer;i,s,k,m:integer;
begin
clrscr;
writeln('массив');
for i:=1 to n do
begin
y[i]:=random(100)-50;
if (i mod 2<>0)and(y[i] mod 2=0) then begin s:=s+y[i];k:=k+1;end;
write(y[i],' ');
if (y[i]<0)and(m=1) then begin y[i]:=0;m:=2;end;
if (y[i]<0)and(m<>2) then m:=1;
end;
writeln('без нулевых');
for i:=1 to n do
if y[i]<>0 then write(y[i],' ');
writeln(s/k:1:10,' среднее арифм');
end.
Дан одномерный массив Zm. Сформировать массив Xk состоящий из ненулевых элементов
Код:
uses crt;
var
zm,xk:array [1..100] of integer;
i,j,k,n:integer; b:boolean;
BEGIN
clrscr;
j:=1;
write('N: '); readln(N);
for i:=1 to n do
 begin
 write('Zm[',i,']: ');
 readln(zm[i]);
 end;
clrscr;
write('Zm: ');
for i:=1 to n do
 write(zm[i],'  ');
for i:=1 to n do
  if zm[i]>i then
   begin
   xk[j]:=zm[i];
   j:=j+1;
   end;
b:=false;
while not b do
 begin
  b:=true;
  for i:=1 to n-1 do
   if zm[i]<zm[i+1] then
     begin
     k:=zm[i];
     zm[i]:=zm[i+1];
     zm[i+1]:=k;
     b:=false;
     end;
  end;
writeln;
write('Xk:');
for i:=1 to j-1 do
 write(xk[i],' ');
writeln;
write('otsortirovaniy Zm:');
for i:=1 to n do
 write(zm[i],' ');
 
readkey;
end.
VaLenOK007 вне форума Ответить с цитированием
Старый 19.09.2011, 13:38   #2
wowsel
Begin'нер
Пользователь
 
Аватар для wowsel
 
Регистрация: 30.04.2010
Сообщений: 48
По умолчанию

Если я правильно понял последнее задание, то вот мой вариант:
Код:
var zm,xk:array[1..100] of integer;
  i,k:integer;
begin
  k:=1;
  For i:=1 to 100 do begin zm[i]:=random(100);
    If zm[i] <> 0 then begin xk[k]:= zm[i]; k:=k+1; write(zm[i],' ');
  end;
end;
end.
Заполняет массив и смотрит на равность нулю, если нет то выводит. Хотя глядя на твой код там должно быть что то ещё...
А первые две я не знаю куда оптимизировать, по моему и так всё ок.
wowsel вне форума Ответить с цитированием
Старый 19.09.2011, 13:50   #3
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Во втором задании у тебя тоже лажа.
Дело не в "переусложненности". Просто неверное решение. Ясное дело, преру не хочется тебе тыкать в каждую сточку твоего раздутого кода..
Зачем там проверка i на нечетность? А значение - наоборот, ты выбираешь именно ЧЕТНОЕ.
ЧТо там дальше за m? Откуда оно?
Какие-то "нулевые".. этого в условии нет!

Реши ПРАВИЛЬНО - допустят. Нечего втирать, что тебя зажимают..
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 25.09.2011, 16:20   #4
VaLenOK007
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 25
По умолчанию

Цитата:
Сообщение от wowsel Посмотреть сообщение
Если я правильно понял последнее задание, то вот мой вариант:
Код:
var zm,xk:array[1..100] of integer;
  i,k:integer;
begin
  k:=1;
  For i:=1 to 100 do begin zm[i]:=random(100);
    If zm[i] <> 0 then begin xk[k]:= zm[i]; k:=k+1; write(zm[i],' ');
  end;
end;
end.
Заполняет массив и смотрит на равность нулю, если нет то выводит. Хотя глядя на твой код там должно быть что то ещё...
А первые две я не знаю куда оптимизировать, по моему и так всё ок.
странно, а стоит убрать рандом и он падает...


Код:
var zm,xk:array[1..100] of integer;
 n,i,k:integer;
begin
  k:=1;
  For i:=1 to n do begin readln(zm[i]);
    If zm[i] <> 0 then begin xk[k]:= zm[i]; k:=k+1; write(zm[i],' ');
  end;
end;
end.
VaLenOK007 вне форума Ответить с цитированием
Старый 25.09.2011, 16:29   #5
VaLenOK007
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 25
По умолчанию

Цитата:
Сообщение от TinMan Посмотреть сообщение
Во втором задании у тебя тоже лажа.
Дело не в "переусложненности". Просто неверное решение. Ясное дело, преру не хочется тебе тыкать в каждую сточку твоего раздутого кода..
Зачем там проверка i на нечетность? А значение - наоборот, ты выбираешь именно ЧЕТНОЕ.
ЧТо там дальше за m? Откуда оно?
Какие-то "нулевые".. этого в условии нет!

Реши ПРАВИЛЬНО - допустят. Нечего втирать, что тебя зажимают..
Я не втираю, я просто делаю как понимаю. m - есть счетчик, если что-то подходит он принимает другое значения для вывода.Проверка на ноль, элементарная предосторожность, чтоб массив не делился на ноль. Коды не очень то и раздуты, просто они по алгоритму. Вот я и прошу обьяснить, мне, недалекому человеку, ГДЕ я накосячил, а не пищать что всё неправильно и руки не оттуда. Я это, однако, знаю, иначе не просил бы помощи
VaLenOK007 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Адаптация стороннего скрипта Che Guevara JavaScript, Ajax 0 12.04.2011 08:36
Комплекс заданий Sabl Помощь студентам 9 12.04.2010 14:15
Адаптация кода счетчика itsmail JavaScript, Ajax 2 21.01.2010 20:35