Массивы в паскале Здравствуйте!!! Нужна Ваша помошь! Дали такое задание на Pascale: используя подпрограммы-функции в массивах Х и У найти минимумы с учетом повторений и поменять их местами. Вроде ничего сложного. Написал код, все работает! Но никак не пойму, как переделать программу, чтобы получились функции... Code: Program MinXY; Uses Crt; Const MSize=10; n=2; m=3; Var x,y:array[1..n, 1..m] of Integer; {n,m:Integer;} tmp:Integer; i,j:Integer; PosXx, PosXy:Integer; PosYx, PosYy:Integer; ValX, ValY:Integer; {Function SearchMin:Integer;} Begin ClrScr; {********************************************} Writeln('Ввод массива Х!!!'); for i:=1 to n do for j:=1 to m do begin Write('x[',i,'][',j,'] -> '); Readln(x[i][j]); end; Writeln; Writeln('Ввод масива Y!'); for i:=1 to n do for j:=1 to m do begin Write('y[',i,'][',j,'] -> '); Readln(y[i][j]); end; {********************************************} Writeln; Writeln('Массив Х!'); for i:=1 to n do begin for j:=1 to m do Write(x[i][j],' '); Writeln; end; Readln; Writeln('Массив Y!'); for i:=1 to n do begin for j:=1 to m do Write(y[i][j],' '); Writeln; end; Readln; {********************************************} ValX:=x[1,1]; PosXx:=1; PosXy:=1; for i:=1 to n do begin for j:=1 to m do if x[i,j]<=ValX then begin ValX:=x[i,j]; PosXx:=i; PosXy:=j; end; end; Writeln('Найден Минимимум в массиве Х!'); Writeln('Значение минимума: ',ValX); Writeln('Строка ',PosXx); Writeln('Столбец ', PosXy); Readln; ValY:=y[1,1]; PosYx:=1; PosYy:=1; for i:=1 to n do begin for j:=1 to m do if y[i,j]<=ValY then begin ValY:=y[i,j]; PosYx:=i; PosYy:=j; end; end; Writeln('Найден Минимимум в массиве Y!'); Writeln('Значение минимума: ',ValY); Writeln('Строка ',PosYx); Writeln('Столбец ', PosYy); Readln; {********************************************} tmp:=x[PosXx,PosXy]; x[PosXx,PosXy]:=y[PosYx,PosYy]; y[PosYx,PosYy]:=tmp; {********************************************} Writeln; Writeln('Массив Х!'); for i:=1 to n do begin for j:=1 to m do Write(x[i][j],' '); Writeln; end; Readln; Writeln('Массив Y!'); for i:=1 to n do begin for j:=1 to m do Write(y[i][j],' '); Writeln; end; Readln; End. Я так понимаю должно наверно быть три функции: 1. Ввод массива (Х и У), 2. Поиск минимумов в массивах Х и Y 3. Замена минимумов местами Подскажите, как можно переделать, а то не совсем разорбрался с функциями... Заранее огромное спасибо!!!!!
Veman Code: Program MinXY; Uses Crt; Const MSize=10; n=2; m=3; Type mas=array[1..n, 1..m] of Integer; Var x,y:mas; {n,m:Integer;} tmp:Integer; i,j,Vvodim,iskat,zamenit:Integer; PosXx, PosXy:Integer; PosYx, PosYy:Integer; ValX, ValY:Integer; Function Vvod(Var x:mas; Var y:mas):integer; Begin ClrScr; {********************************************} Writeln('Ввод массива Х!!!'); for i:=1 to n do for j:=1 to m do begin Write('x[',i,'][',j,'] -> '); Readln(x[i,j]); end; Writeln; Writeln('Ввод массива Y!'); for i:=1 to n do for j:=1 to m do begin Write('y[',i,'][',j,'] -> '); Readln(y[i,j]); end; {********************************************} Writeln; Writeln('Массив Х!'); for i:=1 to n do begin for j:=1 to m do Write(x[i,j],' '); Writeln; end; Readln; Writeln('Массив Y!'); for i:=1 to n do begin for j:=1 to m do Write(y[i,j],' '); Writeln; end; Readln; End; /////////////////////////////////////////////////////// Function Poisk(x:mas; y:mas; Var PosXx:integer; Var PosXy:integer):integer; Begin ValX:=x[1,1]; PosXx:=1; PosXy:=1; for i:=1 to n do begin for j:=1 to m do if x[i,j]<=ValX then begin ValX:=x[i,j]; PosXx:=i; PosXy:=j; end; end; Writeln('Найден минимум в массиве Х!'); Writeln('Значение минимума: ',ValX); Writeln('Строка ',PosXx); Writeln('Столбец ', PosXy); Readln; ValY:=y[1,1]; PosYx:=1; PosYy:=1; for i:=1 to n do begin for j:=1 to m do if y[i,j]<=ValY then begin ValY:=y[i,j]; PosYx:=i; PosYy:=j; end; end; Writeln('Найден минимум в массиве Y!'); Writeln('Значение минимума:',ValY); Writeln('Строка ',PosYx); Writeln('Столбец ', PosYy); Readln; end; ///////////////////////////////////////////////////// Function Zamena(Var x:mas; Var y:mas; PosXx,PosYx:integer):integer; Begin tmp:=x[PosXx,PosXy]; x[PosXx,PosXy]:=y[PosYx,PosYy]; y[PosYx,PosYy]:=tmp; End; Begin vvodim:=Vvod(x,y); iskat:=poisk(x,y,PosXx,PosXy); zamenit:=zamena(x,y,PosXx,PosYx); Writeln; Writeln('Массив Х!'); for i:=1 to n do begin for j:=1 to m do Write(x[i,j],' '); Writeln; end; Readln; Writeln('Массив Y!'); for i:=1 to n do begin for j:=1 to m do Write(y[i,j],' '); Writeln; end; Readln; End. Единственное что не помню, можно ли функции както по-другому вызвать.
На делфи! Основное задание: Написание ftp-клиента. Задача: Написать прикладную программу, которая способна выполнять базовые функции ftp-клиента, тобто вміє працювати з ftp-серверами. Функциональность : программа должна поддерживать следующие стандартные: *Соединение *Аутентификация *Навигация по директориях сервера (cd, dir/ls, и т.д.) *Получение и отправление файлов (в т.ч. і в passive mode) *Розсоединение Подсказка: большинство вышеуказаных функций можна исполнить, используя telnet. Фактически, нужно написать программу с интерфейсом, которая умеет получать\отправлять TCP поток по заданому порту. Иными словами - telnet. Задание(вариант3): Реализовать сохранение паролей, для удобства. ребята помогите плз... срочно надо... с меня причитается....
GenTao, на визе не пишу, но сподобными лабами советую выкладывать мат.обоснование или как минимум формулы. Weman, пожалуйста. Насчет плюсов не парься. Плюсы это хорошо конечно, но не в них суть.
народ.помогите написать прогу плиз.Вот задание (язык Паскаль): Разработать алгоритм и составить программу вычисления таблицы значений функции, заданной в виде разложения в ряд. Значение функции вычислять с точностью e>0, т.е. вычисление суммы членов ряда необходимо прекратить, когда абсолютная величина очередного члена ряда разложения окажется меньше e: | Aк | <e. При вычислении очередного члена целесообразно воспользоваться рекурентным выражением: Ак+1=Ск*Ак; к= 0, 1, 3, ..., где ак - некоторый к-ый член ряда; ак+1 - следующий к+1-ый член ряда; ск - коэффициент, определяемый номером к. При составлении программы необходимо по возможности воспользоваться операторами организации циклов WHILE, REPEAT, FOR. Границы интервала вычислений функций a и b, величина шага изменения аргумента h и точность вычисления функции e задаются при вводе. На печать выводятся номер по порядку, значение аргумента, соответствующие ему, значение функции и номер члена ряда, на котором закончилось вычисление значение функции, в форме таблицы: № Х f (x) № чл.р. 1 2 3 ... сама функция: f(x)=1/x+2*x[(1/(x^2+PI^2))+(1/x^2+4*PI^2))+...+1/(x^2+k^2*PI^2))...] Заранее спасибо!
Помогите разобраться на Pascale нужно реализовать две задачки !!! 1.Определить наибольшее число идущих подряд положительных элементов в массиве А 2.Найти min элемент одномерного массива описав процедуры ввода элементов массива, процедура нахождения min элемента массива.
>>serhio<< Code: Program Neprogram; type mas=array[1..999]of integer; var i,kolvo,elementov,max_naideno:integer; m:mas; Procedure Vvod(Var m:Mas; Var kolvo:integer); //ввод массива Var i:integer; begin randomize; repeat write('Vvedite kolvo elementov:'); readln(kolvo); until kolvo>0; for i:=1 to kolvo do Begin m[i]:=trunc((-9-9)*random+9); write(m[i]); write(' '); end; end; Begin vvod(m,kolvo); elementov:=1; [COLOR=Teal]//считаем кол-во подряд идущих больше 0[/COLOR] max_naideno:=1; [COLOR=Teal]//максимально подряд идущих больше 0[/COLOR] writeln; for i:=2 to kolvo do BEGIN if m[i]>0 then begin elementov:=elementov+1; [COLOR=Teal]//Строку ниже удали, если не хочешь чтоб отображалось сравнение элементов[/COLOR] writeln('Element ',m[i-1], ' and element ', m[i],' = ', elementov); end else begin if max_naideno<elementov then begin max_naideno:=elementov; elementov:=1; end; elementov:=1; end; if (i=kolvo) and (max_naideno<elementov)then max_naideno:=elementov; end; writeln; writeln('Samaya dlinnaya posledovatelnost > 0 :',max_naideno); end. Результат работы: Code: Vvedite kolvo elementov:20 6 0 2 4 -1 5 5 -4 0 7 0 -6 5 1 0 8 2 -2 -4 -3 Element 0 and element 2 = 2 Element 2 and element 4 = 3 Element -1 and element 5 = 2 Element 5 and element 5 = 3 Element 0 and element 7 = 2 Element -6 and element 5 = 2 Element 5 and element 1 = 3 Element 0 and element 8 = 2 Element 8 and element 2 = 3 Samaya dlinnaya posledovatelnost > 0 :3 №2 Code: Program Neprogram; Type Mas= Array[1..100] of Integer; var i,kolvo: integer; x:mas; //[COLOR=Teal] Процедура ввода элементов[/COLOR] Procedure vvod(Var x:mas; Var kolvo: integer); Begin randomize; repeat write('Vvedite kolvo elementov:'); readln(kolvo); until kolvo>0; for i:= 1 to kolvo do begin x[i]:= random(20)- 10; write(x[i],' '); end; writeln; end; //[COLOR=Teal] Процедура поиска минимального элемента[/COLOR] Procedure poisk(x:mas; kolvo:integer); Var min:integer; Begin min:=x[1]; for i:= 2 to kolvo do if x[i]<min then min:=x[i]; writeln('Minimalnii element: ', min); End; Begin vvod(x,kolvo); poisk(x,kolvo); end. Результат работы: Code: Vvedite kolvo elementov:5 -10 8 -5 -7 -4 Minimalnii element: -10
Code: const MasSize= 20; var A: Array[1..MasSize] of Integer; i: integer; cur,res: integer; begin randomize; {Инициализация массива случайными числами} for i:= 1 to MasSize do begin A[i]:= random(20)- 10; write(A[i],' '); end; writeln; {Обработка} for i:= 1 to MasSize do begin if A[i]> 0 then inc(cur) else cur:= 0; if cur> res then res:= cur; end; {Вывод результата} writeln(res); readln end.
Вводим интервал от [а,b],вводим величину шага h, h=(b-a)/n,где n любое натуральное число и точность вычислений е(достаточно маленькое число) .Вычисление функции начинается с х=а и так с шагом h до b будут производиться вычисления функции x прин.[a,b], и до тех пор пока |Ak| не станет меньше е.Ak=1/(x^2+(k^2)*(pi^2)).Произведенные вычисления должны быть выведены в виде таблицы.Первый столбец- номер по порядку(t),второй-значение х,третий-f(x),четвертый-номер члена ряда [a,b].
Примерно так? 1.Вводим a,b 2.Вводим n (целое, >0 ?) Вводим e (кол-во знаков после , ?) считается h=(b-a)/n 3.х:=а 4.От a дo b считаем ф-ию: если а>b, то завершаем подсчет. f(x)=уравненние ф-ии то какое? x[i,4]:=i x[i,2]:=x x[i,3]:=f(x) x[i,4]:=i х:=х+h если (1/(x^2+(k^2)*(pi^2)))<e, , то завершаем подсчет. 5.Выводим таблицу. Не понял про Первый столбец- номер по порядку(t),четвертый-номер члена ряда [a,b]. В чем отличие?
С++ кто шарит сделайте пожалуйста, за мной не заржавеет: -------------------------------------------------------------------------------- Вычислить значение функции в, развив функци. sh(x) в ряд Тейлора. Аргумент x изменяется от 0 до 3 с шагом 0,5. Определить погрешность y = { sh(x) +sh(x*x), 0<=x<=1 y = {(sh*sh)*(x)/sh*(x+2), 1<x<=2 --------------------------------------------------------------------------------- Нужно сделать что б показывало график функции. + Комментарий к каждому ряду. Крайние строки сегодня на вчера вообщем нужно по зарез.