Dale
Участник
|
Цитата: Tuki63 написал 24 мая 2009 14:55 Помогите пожалуйста доделать задачу) НайтиМаксимальный элемент в заданной группе соседних строк матрицы с использованием функций. ____________________________________________________ вот код
Попробовал разобраться в вашем коду - не получилось, написал свой(с вас пиво): ***примечания: 1)Не предусмотрена проверка ввода 2)максимальный размер матрицы 10x10 можно изменить во второй строке программы 3)Переменные BEPX, HU3 и тп пишутся латинскими буквами и цифрами 4)Функция nouck ищет максимальный элемент указанной строки ___________________________________ uses crt; var matr:array[1..10,1..10] of integer; gr1,gr2:integer;{размернсть матрицы} max,i,j, BEPX,HU3:integer; function nouck(HOMEP_CTPOKU:integer):integer; begin max:=matr[HOMEP_CTPOKU,1]; for i:=2 to gr2 do if max<matr[HOMEP_CTPOKU,i] then max:=matr[HOMEP_CTPOKU,i]; nouck:=max; end; begin clrscr; writeln('Введите количество строк матрицы:'); readln(gr1); writeln('Введите количество столбцов матрицы:'); readln(gr2); randomize; For i := 1 to gr1 do For j := 1 to gr2 do matr[i, j] := random(11); writeln('Вот наша матрица:'); For i := 1 to gr1 do begin writeln; For j := 1 to gr2 do write(matr[i,j],' '); end; writeln; writeln('Теперь введите номер строки верхней границы: '); read(BEPX); writeln('Теперь введите номер строки нижней границы: '); read(HU3); for j:=BEPX to HU3 do writeln('В строке номер ',j,' максимальный эллемент равен ',nouck(j)); readkey; end. ___________________________________ (Сообщение отредактировал Dale 26 мая 2009 5:19)
|
Всего сообщений: 139 | Присоединился: май 2009 | Отправлено: 26 мая 2009 5:12 | IP
|
|
Serega1992
Новичок
|
Dale, в предпоследней задаче (про подсчёт кол-ва пятёрок в числе) Вы какой-то бред написали, наверно, специально, чтобы попросивший человек окончательно запутался. На каком основании Вы прерываете цикл, если очередная цифра равна нулю? Т.е. программа эта не будет работать правильно при наличии в числе нулей. Куда более короткое и, самое главное, правильное решение задачи: var a,ans:integer; begin readln(a); ans:=0; while a>0 do begin if a mod 10=5 then inc(ans); a:=a div 10; end; writeln(ans); readln; end. И в следующий раз думайте, что пишете.
|
Всего сообщений: 50 | Присоединился: апрель 2008 | Отправлено: 26 мая 2009 14:20 | IP
|
|
kilimon
Новичок
|
есть система двух уравнений: 2x+ay=2 ax+by=4}, где a и b случайные числа, равномерно распределенные на промежутках а-[ 2; 7] и b-[ -5; -1]. Найти вероятность того, что случайно выбранная пара значений a и b даст неотрицательное решение системы. Я думаю нужно чтобы паскаль взял рандомно значения a и b из их промежутокв, потом подставил эти значиния в систему [в паскале я записал систему так: после сложения уравнений в системе я получил одно уравнение - 2x+ax+ay+by=6 и из него выразил x и y: x=(6-y*(a+b))/(2+a) y=(6-x*(2+a))/(a+b) ], а потом сравнил, если x и y меньше 0, то к a и b заного рандомно присваиваются значения из их промежутков, а если x и y больше или равны 0 [ я в паскале написал else ], то программа идет дальше и вычисляет p - вероятность того, что случайно выбранная пара значений a и b даст неотрицательное решение системы. "P:=shetchik/1000" точно правильная формула Вот моя программа (когда я её запускаю, она пишет ответ 0, это значит что счетчик почему то равняется 0, что-то у меня не правильно) program zadacha; var i,shetchik:integer; a,b,x,y,p:real; begin randomize; shetchik:=0; for i:=1 to 1000 do begin a:=2+(7-2)*random; b:=-5+(-1-(-5))*random; x:=(6-y*(a+b))/(2+a); y:=(6-x*(2+a))/(a+b); if (x<0) and (y<0) then shetchik:=shetchik+1 else end; p:=shetchik/1000; writeln(p); readln; end. Это лаба по теории вероятности. Заранее спасибо.
|
Всего сообщений: 1 | Присоединился: май 2009 | Отправлено: 26 мая 2009 17:08 | IP
|
|
adrinalin
Новичок
|
Спасибо! СРОЧНО нужно решить 3 задачи.. . Люди у меня завтра экзамен... попросила учителка решить 12 задач и дала распечатку ... я решила 7 задач и больше не смогла ступр полный! задачи простые и даже может быть элемнтарные... короч вот. 1. Впеременную последовательно вводятся числа. Оканчание ввода - 0. Опредилить кол-во чисел которые больше К. Задача на цикл. можно фор то ду или While. Другие использовать нельзя. Прошу помочь с первой частью задачи вплоть до слов Окончание ввода - 0. 2. В переменую последовательно вводятся положительные числа. Окончание ввода - 0. Опредилить максимальное число и порядковый номер. Задача анологичная только здесь я непоняла как опредилить порядковый номер в остальном сначала сделаю цикл затем проверка условия затем через If...опредилю масимум.
|
Всего сообщений: 2 | Присоединился: май 2009 | Отправлено: 26 мая 2009 18:26 | IP
|
|
Foton10
Новичок
|
пусть переменная x, и счетчик n n:=0; while x<>0 do begin readln(x); if x>k then n:=n+1; end это первое, если я всё правильно понял то так
|
Всего сообщений: 45 | Присоединился: декабрь 2008 | Отправлено: 26 мая 2009 22:34 | IP
|
|
Dale
Участник
|
Цитата: Serega1992 написал 26 мая 2009 14:20 Dale, в предпоследней задаче (про подсчёт кол-ва пятёрок в числе) Вы какой-то бред написали
Исправил (Сообщение отредактировал Dale 27 мая 2009 15:01)
|
Всего сообщений: 139 | Присоединился: май 2009 | Отправлено: 26 мая 2009 23:27 | IP
|
|
Dale
Участник
|
Цитата: adrinalin написал 26 мая 2009 18:26 Спасибо! 2. В переменую последовательно вводятся положительные числа. Окончание ввода - 0. Опредилить максимальное число и порядковый номер. Задача анологичная только здесь я непоняла как опредилить порядковый номер в остальном сначала сделаю цикл затем проверка условия затем через If...опредилю масимум.
Вводите переменную под порядковый номер, и там, где вы опр. максимум мен. пор. номер на счетчик, например: пусть переменная x, и счетчик n, порядковый номер num ... num:=0; while... ... IF max<x then begin max=x; num=n; end; ...
|
Всего сообщений: 139 | Присоединился: май 2009 | Отправлено: 26 мая 2009 23:46 | IP
|
|
assassin86
Новичок
|
Ребят помогите пожалуста=)Горю блин=)Я в паскале полный дуб=)На завтра надо сделать эти задачи.Помоги те плиз=) 1.Дан текстовый файл f,содержащий сведения о сотрудниках,записанные по образцу: фамилия имя отчество фамилия имя отчество ...Записать эти сведения в текстовом файле g,используя образцы а)имя отчество фамилия имя отчество фамилия б)фамилия и.о. фамилия и.о. 2.Вычислить произведение m членов арифметической прогрессии,если известны значения первого члена а1 и разность арифметической прогрессии. 3.Напишите процедуру SeekVar(f),которая находит в файле ,содержащем текст программы на Паскале,идентификаторы переменных. Заранее спасибо=) (Сообщение отредактировал assassin86 27 мая 2009 14:57)
|
Всего сообщений: 1 | Присоединился: май 2009 | Отправлено: 27 мая 2009 14:16 | IP
|
|
Lenin
Новичок
|
Люди помогите пожалуйста с курсовой роботой по Алгоритмизации и Програмированию. Дано три задачи, нада решить их и сделать меню! в самом меню вставить 5 процедур или функций модуля CRT, блоксхемы - одна ко всему меню в общем и ещё к каждой отдельной задаче тоже прописать блоксхему как она работает. в обьяснении к програме нужно написать какие и для чего использовались функции, процедуры crt и дальше главные моменты всего меню описать, с помощью чего, что у нас там происходит. Кто может взятся? Я дам задачи и более подробно обьясню что к чему! Робота будет отблагодарена денюжкой (Сообщение отредактировал Lenin 31 мая 2009 0:33)
|
Всего сообщений: 12 | Присоединился: май 2009 | Отправлено: 31 мая 2009 0:05 | IP
|
|
Metal
Новичок
|
Ребят,добрый день.Помогите пожалуйста с программой.Уже давно мучаюсь,никак не получается ничего толкового.Сначала вообще сама себе жизнь усложнила,т.к. неправильно истолковала условие,а теперь мысли появились,но времени совсем не :-(. Вот текст задание: Составить программу,которая выводит на экран таблицу умножения и сложения натуральных чисел в шестнадцатиричной системе счисления.Желательно с процедурами,если не затруднит с этиим помочь. Вот мои необработанные наброски: Var A,B: array [1..100,1..100] of integer; i,j:integer; x:array [1..10] of integer; Const n=10;m=10; begin x[ i ]:=1; x[ j ]:=1; For i:=1 to n-1 do For j:=1 to m-1 do begin x[ i ]:=x[ i ]+1; x[ j ]:=x[ j ]+1; end; For i:=1 to 1 do For j:=2 to m-1 do begin A[ i,j ]:=x[ j ]; B[ i,j ]:=x[ j ]; end; For i:=2 to n-1 do For j:=1 to 1 do begin A[ i,j ]:=x[ i ]; B[ i,j ]:=x[ i ]; end; For i:=2 to n-1 do For j:=2 to m-1 do begin A[ i,j ]:=x[ i ]*x[ j ]; B[i,j]:=x[ i ]+x[ j ]; end; Writeln('A=,B='); end. Заранее прошу прощения за свою бестолковость.В вышенаписанном я пыталась хотя бы просто вывести таблицу умножения и сложения в виде таблицы Пифагора...но,к сожалению, даже это не удалось.Помогите пожалуйста,если сможете.Сама тоже буду стараться что-то сообразить. Заранее большое спасибо. (Сообщение отредактировал Metal 31 мая 2009 20:35)
|
Всего сообщений: 2 | Присоединился: май 2009 | Отправлено: 31 мая 2009 20:30 | IP
|
|
|