Форум: "Начинающим";
Текущий архив: 2013.07.07;
Скачать: [xml.tar.bz2];
Внизмасивчик ( Найти похожие ветки
← →
G-leb (2012-11-16 21:05) [0]Задали массив чисел A (n) , n ≤ 500. Разработать программу, которая вычисляет сумму всех чисел, которые повторяются, и произведение всех чисел, которые не повторяются
///Задайте значение действительным величинам произвольным образом в диапазоне от 0 до 100///uses
SysUtils;
const n = 500;
type mas = array[1..n] of integer;
var a: mas; i: byte;
begin writeln("vvod:");
for i:=1 to n do readln(a[i]);
writeln("vuvod:");
for i:=1 to n do write(a[i]:n);
readln;
end.
вот масив .. как дописать чтоб находило похожие и добавляло ... а не походие умножало ?
← →
Rouse_ © (2012-11-16 21:10) [1]Глеб, представь что оперирующий тебя врач прибежал на форум с вопросом "с какой стороны аппендицит"?
Я могу понять когда люди провели собственные изыскания и уперлись в непонятный им момент, но вот так чтобы сразу (решите за меня).
Сейчас девять - за два часа, думаю сможешь написать то, что тебе не понятно в алгоритме. Если нет - закрываемся...
← →
G-leb (2012-11-16 21:13) [2]2 день сижу .. не могу понять ничего ... прочитал уже штук 30 примеров не могу понять как найти ..
← →
Rouse_ © (2012-11-16 21:16) [3]Ну ты код то свой покажи чего наваял, лучше каждую строчку прокомментируй, так может и сам поймешь ошибку
← →
Сергей М. © (2012-11-16 21:44) [4]
> G-leb (16.11.12 21:05)
Тебе ж сказано в задании - "Задайте значение действительным величинам"
А ты что пишешь вместо этого ?
> mas = array[1..n] of integer;
За два дня можно было бы вполне разобраться хотя бы с этим весьма важным для поиска и выбора решения моментом.
← →
AV © (2012-11-16 22:10) [5]
> Разработать программу, которая вычисляет сумму всех чисел,
> которые повторяются
начать надо с определения таковых.
напиши как найти первое число, которое уже встречалось.
← →
G-leb (2012-11-16 22:12) [6]Вот помогли мне .... но есть кое что непонятное
program lab5;
{$APPTYPE CONSOLE}
uses
crt;
Var
a : array [1..500] of integer;
n, i, j, k, sum, mul, col: integer;
begin
write("Введите размерность массива:");
readln(n);
mul := 1;// cумма элементов
sum := 0;
// инициализация массива
for i := 1 to n do
begin
randomize;
a[i] := random (100);
end;
// вывод элементов
for i := 1 to n do write(a[i], " ");
// проход массива. Каждый элемент сравниваем с каждым.
writeln;
k := 1;
for i := 1 to n do
begin
col := 0; // переменная для подсчёта количества совпадений.
for j := 1 to n do
begin
// если встретился такой же элемент
if (a[i] = a[j]) then
begin
inc(col);// увеличиваем счётчик совпадений на 1
end;
end;
{ если в программе было только одно свпадение чисел(сравнили
число с самим собой) - произведение элнментов }
if (col = 1) then
mul := mul * a[i]
else
// иначе - сумма
sum := (sum + a[i]);
end;
writeln("Cумма = ",sum);
writeln("Произведение = ", mul);
end.
1
> mas = array[1..n] of integer; ставлю real выдает ошибку ...
2. генерирует как-то странно по 10-15 одинаковых чисел
и
uses
crt; тож ошибку выдает ставлю
uses
SysUtils; только тогда работает
← →
Сергей М. © (2012-11-16 22:37) [7]
> ставлю real выдает ошибку
Вернешь на место integer - "ошибку" тебе выдаст препод, не засчитав задание выполненным.
Придется тебе выбирать из двух зол меньшее)
← →
Сергей М. © (2012-11-16 22:43) [8]
> Вот помогли мне
Тебе "помог" такой же незнайка.
Так сказать медвежью услугу тебе оказал, подсуетившись и выдав неверное решение.
← →
G-leb (2012-11-16 22:43) [9]так не запускается с real :(
← →
Rouse_ © (2012-11-16 22:44) [10]
> uses
> crt; тож ошибку выдает ставлю
> uses
> SysUtils; только тогда работает
Т.е. для тебя что паскалевская программа, что на дельфе, как я понял монопенисюальны? Где учишся, что за ПТУ такой?
← →
Jeer © (2012-11-16 22:47) [11]
> Где учишся, что за ПТУ такой?
Скорее всего ВУЗ, заявленный под сокращение. :(
Да и правильно.
P.S.
Иди в ремесленники, работай руками - это более понятно и востребовано.
← →
Rouse_ © (2012-11-16 22:49) [12]В вузах учат, это явно не вуз...
← →
Сергей М. © (2012-11-16 22:50) [13]
> так не запускается с real
Так ты разберись почему "не запускается" - в сообщение об ошибке вникни ..
Или препод с тобой "разберется", если ты не разберешься)
Ну есть, конечно, и "запасной вариант" - купить у кого-нибудь готовое решение и попытаться впарить его преподу как своё).. Но тут есть немалый риск что "аппаратура при нем"))
← →
G-leb (2012-11-16 23:21) [14]первый курс - 3 лабораторная по программированию .. до етого никогда не сталкивался с программирование )) .. ну может чуть чуть
← →
Сергей М. © (2012-11-16 23:27) [15]
> G-leb (16.11.12 23:21) [14]
Подсказка : сначала отсортируй массив (по возрастанию или убыванию - не важно) любым известным тебе алгоритмом сортировки.
← →
G-leb (2012-11-16 23:27) [16]первые 2 лабы сам написал почти .. немного в нете подсказывали ... но там легко иф елсе одни ввод вывод переменных кнопка батон и текстовые поля ... а тут цыкл и масив появился .. и я еще не совсем понимаю как с ними работать .. теорию вроде прочитал .. а куда-то в сторону пофантазировать иже проблематично
← →
G-leb (2012-11-16 23:29) [17]хахах .. мне не известен ни 1 алгоритм сортировки ))) гуглу известен ... у него сейчас спрошу
← →
Сергей М. © (2012-11-16 23:38) [18]
> хахах .. мне не известен ни 1 алгоритм сортировки )))
Тут рыдать нужно, ибо факт-то сам по себе скорбный)
а ты зубоскалишь)
← →
G-leb (2012-11-16 23:43) [19]Var
a : array [1..500] of integer;
n, i, j, k, sum, mul, col: integer;
begin
write("pazmernost masiva:");
readln(n);
for i := 1 to n do
begin
{randomize; }
a[i] := random (100);
end;
for i := 1 to n do write(a[i], " ");
readln;
end.
вот .. - почему первое число масиво всегда =0 ??? а если {randomize; } написать без {} то повторяются по 5-10 раз одни и теже сгенерируемые цыфры .. ?
← →
G-leb (2012-11-16 23:44) [20]сереж .. если есть время и желание объяснить и научить .. дай аську .. там быстрее будет .. ))0 я нашел пример "пузырьковой сортировки "
← →
Jeer © (2012-11-16 23:53) [21]Я просто "плачу" от уровня образования сегодняшних "студентов", а также преподавателей их и чему-то.
Последним - свечка в задницу.
← →
Сергей М. © (2012-11-16 23:55) [22]
> почему первое число масиво всегда =0 ?
Ну, положим, не всегда, а только при определенной "фазе Луны")
А управление этой "фазой" как раз и осуществляется оператором Randomize.
> повторяются по 5-10 раз одни и теже сгенерируемые цыфры
Потому что диапазон (100) для массива в n=500 элементов маловат /
Чем больше он будет при неизменном n, тем реже будут генерироваться повторяющиеся числа (а не "цифры")
> там быстрее будет
Это ты мне ?
Я вообще-то никуда не спешу)
← →
Сергей М. © (2012-11-17 00:00) [23]
> Jeer © (16.11.12 23:53) [21]
Так ведь сегодняшние студни - это вчерашняя школота..
А там ситуация еще прискорбней..
← →
Сергей М. © (2012-11-17 00:05) [24]
> Последним - свечка в задницу
В смысле чтобы в заднице светлее стало, ибо "ученье - свет" ?)
← →
G-leb (2012-11-17 00:11) [25]так с рендомайзом - это будет правильно да .. ? окей.. допустим числа генерирует... теперь их сортируем ..
uses
crt;
Var
a : array [1..500] of integer;
n, i, j, k, sum, mul, col: integer;
begin
clrscr;
randomize;
write("pazmernost masiva:"); readln(n);
for i := 1 to n do
a[i] := random (100);
for i := 1 to n do write(a[i]:3);
{ for j:=1 to n-1 do begin
for i:=1 to n-j do begin
if (k[i] > k[i+1]) then swap(k[i],k[i+1]) }
readln;
end.
почему у меня
uses
crt; - показывает ошибку
и что значит " :3" вот здесь write(a[i]:3);
← →
G-leb (2012-11-17 00:14) [26]в айсикю или аське .. удобнее ведь ..
← →
G-leb (2012-11-17 00:14) [27]скайпе *
← →
G-leb (2012-11-17 00:14) [28]или ВК
← →
Sha © (2012-11-17 00:16) [29]Разбирайся
program Laba;
{$APPTYPE CONSOLE}
var
a: array [1..500] of double;
mul, sum: double;
i, j, n: integer;
begin
write("dimension: "); readln(n);
if (n>=1) and (n<=Length(a)) then begin;
mul:=1;
sum:=0;
Randomize;
for i:=1 to n do a[i]:=Random (100);
for i:=1 to n do write(a[i]:3:0);
writeln;
for i:=1 to n do begin
j:=n;
while (j=i) or (j>0) and (a[j]<>a[i]) do dec(j);
if j=0 then mul:=mul*a[i] else sum:=sum+a[i];
end;
writeln("mul = ", mul);
writeln("sum = ", sum);
readln;
end;
end.
← →
Jeer © (2012-11-17 00:21) [30]
> Sha © (17.11.12 00:16) [29]
>
> Разбирайся
Бесперспективно, но хотел бы ошибиться.
← →
Сергей М. © (2012-11-17 00:26) [31]
> Sha © (17.11.12 00:16) [29]
>
> mul:=1;
Здесь довольно сомнительный момент.
Если после вычислений m останется равной 1, то толи не было в массиве уникальных элементов, толи были, но ни одного нулевого среди них не было ...
А если сделать mul:=0, то тоже хз как трактовать 0 в mul на выходе - толи не было уникальных, толи был один равный нулю
← →
Сергей М. © (2012-11-17 00:31) [32]
> G-leb
> в айсикю или аське ..
> скайпе *
> или ВК
Вот мне оно надо - заниматься спринтерским ликбезом в час ночи занахаляву ?)
← →
Sha © (2012-11-17 00:31) [33]так и с суммой то же самое,
проще по определению считать, что если не было, то mul=1,
как, например, считают 0!=1, и ничего, все довольны
← →
G-leb (2012-11-17 00:35) [34]write(a[i]:3:0); что такое 3 и 0 ?
← →
Sha © (2012-11-17 00:38) [35]а что такое F1?
← →
G-leb (2012-11-17 00:40) [36]не 7 винде не работает ф1
← →
Сергей М. © (2012-11-17 00:40) [37]
> Sha © (17.11.12 00:31) [33]
>
> так и с суммой то же самое
Ну это да, и с суммой те же фаберже.
Допущения в таких случаях следовало бы отражать в задании, ибо не глядючи в код но токмо в результаты рантайм-прогона придраться к правильности выполнения задания можно запросто.
← →
Сергей М. © (2012-11-17 00:42) [38]
> не 7 винде не работает ф1
Гуголь тоже не работает на "7 винде" ?
Это же "гнилая отмазка")
← →
Sha © (2012-11-17 00:43) [39]>G-leb (17.11.12 00:40) [36]
>не 7 винде не работает ф1
смени винду
← →
G-leb (2012-11-17 00:49) [40]а гг )) промежутки между числами )
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.07.07;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.003 c