Взрослая социальная сеть
Текстовая версия форума
Знакомства для секса Регистрация


Народ, Помогите, (ЗА СЕКСО)

Текстовая версия форума: Архив компьютерного форума



Полная версия топика:
Народ, Помогите, (ЗА СЕКСО) -> Архив компьютерного форума


Страницы: 12[3]

vano-m
QUOTE (mvf23 @ 04.04.2008 - время: 13:46)

Угу-угу... Кстати - попробуй всё же разобраться как оно работает, чтоб тебе польза была не только для зачетки, но и для общего развития... :)

Будут вопросы - задавай, не стесняйся, а то тут "матерые программисты" вместо того, чтоб объяснять по-человечески, какие-то эзотерические споры ведут от безделья :)

спасибо. да я впринципе с 1 по 4 лабу как текст увидел, так сразу и суть и алгоритм понял. пятую еще пока пытаюсь понять, до перестановок уже все въехал. до конца семестра остались две лабы... потом экзамен. ээх. уже начал готовится...
vano-m
Уррра! пятая лаба здана! осталось написать подпрограммы.

ВСЕМ огромное спасибо!
vano-m
Народ. Понимаю, конечно, что достал тут уже всех. Но мну застопорился на последней лабе. Из зп чего не дают написать курсовую. Помогите в последний разок , а?
do-do
QUOTE
Но мну застопорился на последней лабе

Ты как царь горы понимаешь шо написал, для тех кто в танке разжуй Ху из Что

P.S. Кого достал, те не ответят - так шо брось, чай не институтка. Сермягу излагай
vano-m
Вобщем тут такое дело...

Прочитать в одномерный массив строк (длинной по 74 символа) первые 73 символа каждой строк файла DATF.TXT (файл на серваке в универе). Используя функцию, заполнить выходной одномерный массив (элементы - строки, длинной восемь символов) числами.

Процедуры
1) Составить строковую функцию, выбирающую из строки первое число - первую подстроку между пробелами, заменяя при выборе в исходной строке выбранные символы пробелами.
2) Аечать выходного массива по пять чисел в строке выполнить с помощю процедуры.

M<=10 М- кол-во строк
do-do
Ну так в чем затык то ?

Ты ведь можешь сравнивать в IF значение букв и если символ больше 9 или меньше 0 то это не число...дальше находишь первую позицию числа и в цикле ищешь пробел (или букву?)
vano-m
QUOTE (do-do @ 26.04.2008 - время: 19:21)
Ну так в чем затык то ?

Ты ведь можешь сравнивать в IF значение букв и если символ больше 9 или меньше 0 то это не число...дальше находишь первую позицию числа и в цикле ищешь пробел (или букву?)

я ваще не знаю как это написать!.... :'((((((((
vano-m
походу попу рвать придеца на этой инфе... тока как бы это так побезболезненей зделсть...
do-do
Вот очередная мастурбация моего разума

CODE

(***************************[sexnarod.ru]*******************************)
(*                                                                     *)
(*  File   : Number-str.pas                                            *)
(*  Created: 01/05/2008                                                *)
(*  Reason : работа со строковыми массивами                            *)
(*  Product: нахождение числа в подстроке                              *)
(*  Author : do-do                                                     *)
(*  Purpose: Прочитать в одномерный массив строк длинной по 74 символа *)
(*           первые 73 символа каждой строк файла DATF.TXT .           *)
(*           Используя функцию, заполнить выходной одномерный массив   *)
(*           (элементы - строки, длинной восемь символов) числами.     *)
(*           Процедуры/Функции                                         *)
(*   All_Str - функция, выбирает из строки первое число -              *)
(*           первую подстроку между пробелами, заменяя при выборе в    *)
(*           исходной строке выбранные символы пробелами.              *)
(*   prn_str- процедура печати выходного массива по пять чисел в строке*)
(*            Проверки на ошибки ввода/вывода не производится          *)
(*                                                                     *)
(*            Все числа считаются ЦЕЛЫМИ не ОТРИЦАТЕЛЬНЫМИ!!!          *)
(***************************[sexnarod.ru]*******************************)
program number_str;

const
M=10; (* максимальный размер массива *)
MyFileName='datF.txt'; (* файл с тестовым массивом *)


Type
string74=string[74];
string8 =string[8];
Num74=0..74;
element=record
        st:string74;
        pos1,pos2:Num74;
        num:integer;
        Len:Num74;  
        end;

Var
N:1..M; (* Число строк которые нужно считать *)
s: array [1..M] of element;
s1: array [1..M] of string8;
f:text;

procedure init; (* инициализация программы *)
Var i:1..M;
begin
(* обнуление рабочего массива *)
For i:=1 to M DO begin
s[i].st:=''; s[i].pos1:=0; s[i].pos2:=0; s[i].num:=0;s[i].len:=0;s1[i]:='';
                end;
writeln;
write('N=');readln(N);  (* вводим число считываемых строк *)
Assign(f,MyFileName);
Reset(f);
For i:=1 to N do BEGIN
Readln(f,s[i].st);
s[i].len:=length(s[i].st); (*длина текущей строки *)
                END;
Close(f);
end; (* end init *)

function This_num(q:string74):boolean; (*True если цифра*)
begin
This_num:= (q >= '0') AND (q <= '9');

end;

procedure All_Str; (* основная процедура *)
var i:1..M;
   j,l:Num74;
   stop:boolean;
   Code: integer;
function Num_pos(j:Num74;var y:element):boolean;
(*True - если в позиции строки y.str c j число. Тогда в y.pos1 и y.pos2 заносим *)
(* начальную и конечную позицию этого числа *)
(* y.len - уже находится размер строки y.str *)
Var                                                
  Flag,quit:boolean;
  i:Num74;
 

begin
   Flag:=False;
   i:=j;
   IF j > 1 then
            begin IF y.st[j-1] = ' ' then  Flag:=True end Else Flag:=True;
                                 (*начало строки, там то же может быть число*)
   IF Flag then
begin
quit:=True;          
while (j < y.len) and quit DO  begin
Inc(j);
IF Not This_num(y.st[j]) then begin IF y.st[j] =' 'then begin Flag:=True;
quit:=False; y.pos1:=i; y.pos2:=j-1;
  end;    end;          
                        end;
IF quit and (j=y.len) then begin Flag:=True;y.pos1:=i;y.pos2:=j; end;
end;


   Num_pos:=Flag;

end; (*end Num_pos *)

begin (* start All_Str *)

for i:=1 TO N DO begin
   j:=0; stop:=False;
   while (j <= s[i].len) AND Not stop DO

begin  
INC(j);
IF This_num(s[i].st[j]) then stop:=Num_pos(j,s[i]);

end;
IF stop then begin  

s1[i]:=Copy(s[i].st,s[i].pos1,s[i].pos2-s[i].pos1+1);
Val(s1[i],s[i].num,Code);
IF Code <> 0 Then begin Writeln('Ошибка преобразования',i);halt(128) end;
For l:=s[i].pos1 to s[i].pos2 do s[i].st[l]:=' '; (*пробелы*)
            end;
               end;


end; (* end All_Str *)

procedure prn_str;
var
i:1..M;
begin

Writeln('Number printing');
   For i:=1 to N DO IF s1[i] <> '' then Write(s1[i]:16);
WriteLn;
Writeln('END');
(*На стандартной консоли (шириной 80 символов) будет 5 чисел в колонке*)
Writeln;
Writeln('String!!!!');
   For i:=1 to N do writeln(s[i].st);
end;


BEGIN (* main programm *)
Init;
All_Str;
prn_str;

END.  (* main programm *)


Это сообщение отредактировал do-do - 01-05-2008 - 17:49
vano-m
Ну додо, ну дружище! НУ ВЫРУЧИЛ! ОГРОМНОЕ СПАСИБО!

попробую сдаться отпишусь как прошло.

ведь не перевелись же еще добрые люди)))))))))))
do-do
В логике алгоритма разберись :)
Числом считается не только подряд стоящие цифры между пробелами, но и если цифрами начинается строка (потом пробел) и пробел цифры конец строки.

При выводе печатаются исходные строки УЖЕ со вставленными пробелами.......
vano-m
а что такое flag?
do-do
flag wink.gif он и в африке флаг.
Просто переменная булева (логическая)
если принимает значение TRUE то последовательность символов в строке с ТАКОЙ то позиции является числом (т.е. окружена пробелами...или с одной стороны начало строки конец пробел..или пробел конец строки)
vano-m
выдает несовместимость типов. и говорит что ошибка в выражении.

IF Not This_num(y.st[j]) then begin IF y.st[j] =' 'then begin Flag:=True;
quit:=False; y.pos1:=i; y.pos2:=j-1;
end; end;
end;
IF quit and (j=y.len) then begin Flag:=True;y.pos1:=i;y.pos2:=j; end;
end;

do-do
Все нормально там.... на 2х компиляторах проверил
Может списал как то не так..вот тут архив с исходниками, exe и пример data файла. Усе работает.

http://slil.ru/25773961

vano-m
Нашкрябал к 5 и 7 лебе блок схепы. Писец какие страшные получились. сам путаюсь.



Присоединённый файл
Присоединённый файл  lab5.doc
vano-m
мало ли если интересно 7 лаба. блок схема.



Присоединённый файл
Присоединённый файл  lab7.doc
vano-m
Народ, а ктонить умеет решаь интегралы? Или может есть какая прога для их решения?
doodge
Люди добрые помогите пож-та
CODE
Найти максимум из всех элементов, тех строк из заданной матрицы, которые упорядочены (либо по возрастанию, либо по убыванию)


И сколько хотите за решение?
сорри за наглость 08.gif но нужно срочно

Это сообщение отредактировал doodge - 21-06-2009 - 09:04
JeyLo
Язык?
doodge
QUOTE (JeyLo @ 22.06.2009 - время: 13:59)
Язык?

ой совсем забыл уточнить - Паскаль 08.gif
Алексеев
Легко. Смотрим:
CODE
program proga;
{$R-}  
{Выключаем проверку границ массива. Потом описываем саму матрицу в виде динамического массива:}

type
PLine = ^line; { Описываем строку динамической матрицы }
line = array [1..1] of byte;
PMatrix = ^arr; {Описываем саму матрицу как массив указателей на строки}
arr = array[1..1] of PLine;

var
i,j,k,rand,buf: byte; {Это вспомогательные переменные}
a,b: byte; {Переменные размерности массива}
detect: boolean; {Переменная для определения упорядоченности}
Matrix: PMatrix; {Указатель на матрицу}

procedure Form_Dynamic_Matrix; {процедура формирования матрицы}
begin
writeln('Vvedite chislo strok: ');
read(a); {считываем число строк}
writeln('Vvedite chislo stolbcov: ');
read(b); {считываем число столбцов}
GetMem(Matrix, a*sizeof(PLine)); {выделяем память под указатели на строки}
for i:=1 to a do GetMem(Matrix^[i], b*sizeof(PLine)); {выделяем память для каждого из членов матрицы}
writeln('Matrica slychainih chisel: ');
for i:=1 to a do
begin
writeln;
for j:=1 to b do
 begin
 matrix^[i]^[j]:=random(256); {Забиваем матрицу случайными байтовскими числами}
 write(matrix^[i]^[j],' '); {Выводим на экран}
 end;
end;
end;

procedure Clear_Matrix; {Очистка памяти. Вызывается в конце программы}
begin
for i:=1 to a do FreeMem(Matrix^[i], a*sizeof(Pline)); {чистим память для каждого из членов}
FreeMem(Matrix, b*sizeof(PLine)); {чистим память для указателей на строки}
end;

procedure Rand_Organized; {Упорядочиваем строки случайным образом}
begin
for k:=1 to a do {перебираем все строки}
begin
rand:=random(10); {случайное значение от 0 до 9}
if rand > 6 then {если оно больше шести, упорядочиваем по возрастанию стандартным способом}
   begin
   for i:=1 to b-1 do
    for j:=1 to b-i do
    if (Matrix^[k]^[j] > Matrix^[k]^[j+1]) then
     begin
     buf:=Matrix^[k]^[j];
     Matrix^[k]^[j]:=Matrix^[k]^[j+1];
     Matrix^[k]^[j+1]:=buf;
     end;
   end else
if rand > 3 then {если от шести до трех, упорядочиваем по убыванию тем же способом}
   begin
   for i:=1 to b-1 do
    for j:=1 to b-i do
    if (Matrix^[k]^[j] < Matrix^[k]^[j+1]) then
     begin
     buf:=Matrix^[k]^[j];
     Matrix^[k]^[j]:=Matrix^[k]^[j+1];
     Matrix^[k]^[j+1]:=buf;
     end;
   end;
end; {если три или меньше, не делаем ничего}
writeln;
writeln;
writeln('Otsortirovannaya Matrica: '); {выводим на экран}
for i:=1 to a do
 begin
 writeln;
 for j:=1 to b do write(matrix^[i]^[j],' ');
 end;
end;

procedure Detected; {Ищем отсортированные строки}
begin
writeln;
writeln;
writeln('Analiziryem...');
for k:=1 to a do {пробегаемся по всем строкам}
begin
detect:=true; {переменная-детекотор}
{Сначала смотрим на предмет возрастания}
for i:=1 to b-1 do if matrix^[k]^[i]>matrix^[k]^[i+1] then detect:=false;
{если хоть одно значение в строке меньше предыдущего, detect=false. Иначе выводим результат.}
if detect=true then writeln('Stroka ',k,' uporyadochena po vozrastaniu. Max = ',matrix^[k]^[b]) else
{потом так же смотрим на убывание}
 begin
 detect:=true;
 for i:=1 to b-1 do if matrix^[k]^[i]<matrix^[k]^[i+1] then detect:=false;
 if detect=true then writeln('Stroka ',k,' uporyadochena po ubivaniyu. Max = ',matrix^[k]^[1]);
 end;
end;
end;

begin {Сама прога}
randomize; {генератор случайных чисел, чтобы значения не повторялись}
writeln;
Form_Dynamic_Matrix; {формируем матрицу}
Rand_Organized; {Сортируем матрицу}
Detected; {Ищем упорядоченные строки}
Clear_Matrix; {Чистим память после использования}
readln;
readln;
end.


Процедуры writeln и readln добавлены для удобночитаемости результатов :)
Если что, исходник и экзешник лежат тут: .

П.С. Сексов нафиг не надо. Но если совесть таки будет мучать, можно подарить что-нить симпатичное... ну скажем Велле :)

П.П.С. На Паскале не кодил уже года три-четыре, поэтому за индусские выкладки тапками не кидайтесь.

П.П.П.С. Передаю привет уважаемому начальству за очередной продуктивный субботний день bleh.gif

Страницы: 12[3]

Архив компьютерного форума -> Народ, Помогите, (ЗА СЕКСО)





Проститутки Киева | индивидуалки Москвы | Эротический массаж в Москве | Проститутки-индивидуалки Москва