ProPlay.ru
  MAIN    NEWS    ARTICLES    TEAMS    DEMOS    VODs    ODDS    TOURNEYS    FORUMS    GALLERIES    SITE   
Русский Китайский
Forget password?
Registration

    Richest users
 ggtt 2664
 Hvostyn 2400
 GopaveC 2000
 rmn1x 2000
 Akon 1958
 razdavalochka 994
 CoolMast 700
 Devostatortk 606
 modify2h 600
 Boevik 400
    Poll

The Internaitonal 2015 был
Лучше предыдуших
Хуже предыдущих
Такой же



    Reports
SLTV StarSeries 6: Репортаж
SLTV StarSeries V: CS Global Offensive
Рейтинг ProPlay.ru: Январь 2013
Fnatic FragOut CS:GO League
SLTV StarSeries #4 CS:GO
SLTV Star Series #3: Репортаж
GosuLeague #3: Репортаж
SLTV Star Series #2: Репортаж
The Premier League Season 2: Репортаж
36ON.RU BATTLE CITY: Плей-офф
Fantasy Football - Евро 2012: Лига ProPlay.ru
Rising Stars Challenge
36ON.RU BATTLE CITY: Групповой этап
FnaticRC CS League: Групповой этап
It's Gosu's Monthly Madness: 2 сезон
36ON.RU BATTLE CITY: 2й квалификационный тур
The Premier League: 2 cезон
Fantasy Football - UEFA Champions League лига ProPlay.ru
36ON.RU BATTLE CITY: 1й квалификационный тур
36ON.RU BATTLE CITY: Составы команд


    Links


    #1   e1eKTrik @ 23.01.08 17:30 [пожаловаться]   
Всем доброго вечера очень нужны люди которые разбираются в языке программирования паскаль. Длео в том что у меня беда( Завтра необходимо ехать в универ сдавать Лабораторную работу по информатике. Проблема в том что у меня нет этой лабораторной, но есть образец выполнения другого варианта. Вкратце суть лабораторной состоит в работе с псевдослучайными последовательностями(нихерова для 1 курса универа). Ссылка на образец работы - http://ifolder.ru/5071931. Задание образца
Выделить цветом и подсчитать число слов, удовлетворяющих следующим условиям:
1. Гласные буквы в слове расположены асимметрично(1-я но не последняя и т.д.)
2. Слово принадлежит строке, в которой букв меньше, чем в первой строке.
Мое задание :
Выделить цветом и подсчитать число слов, удовлетворяющих следующим условиям:
1. Первая и средняя буквы в слове - согласные.
2. Слово принадлежит столбцу, в котором четырехбуквенных слов меньше, чем пятибуквенных.
P.S. Пролистал 3 книжки по Паскалю. Нигде не описывается команда GetWord.
P.P.S. Обращусь ещё обязательно. Всем заранее спасибо за самые адекватные комментарии и желание помочь
    #2   xfwx.hinter @ 23.01.08 18:14 [пожаловаться]   
getword - это не стандартная функция, в образце она описана вручную как процедура;
имхо выучить уже не успеешь, лучше бы попросил, чтобы объяснили
    #3   e1eKTrik @ 23.01.08 19:10 [пожаловаться]   
Объяснение вполне устроит, мне не нужно ничего кроме 1 пункта а именно про согласные скажите пожалуйста как это сделать!
    #4   Gg_rus_creW @ 23.01.08 19:48 [пожаловаться]   
а слова то русские? в принцепе не важно, if (x="q") or (x="п")... or (x="щ") ...

я бы так сделал, врядли паскаль знает что такое согласные...
    #5   e1eKTrik @ 23.01.08 19:51 [пожаловаться]   
program lab7;
uses Crt;
type
s=array[1..7] of char;
var
a:array[1..20,1..10] of s;
w:s;
i,j,k:integer; {i-stroka,j-stolbez}
buf:string[7];
nstr:integer;
mstr:array[1..20] of shortint;
const summa: real = 0;
procedure GetWord(var ww:s);
var
k,n,p:integer;
begin
n:=random(6)+2;
for k:=1 to 7 do
ww[k]:=chr(0);
for k:=1 to n do begin
p:=random(25)+65;
ww[k]:=CHR(p);
end;
for k:=n+1 to 7 do
ww[k]:=chr(32);
end;
function asymmetric(var ww:s):boolean;
var
k,wwlen,n,obeg,oend,omid:integer;
begin
wwlen:=0;
asymmetric:=true;
for k:=1 to 7 do
if ww[k]' ' then wwlen:=wwlen+1;
n:=wwlen div 2;
for k:=1 to n do begin
obeg:=ord(ww[k]);
oend:=ord(ww[wwlen-k+1]);
if (obeg=65)or(obeg=69)or(obeg=73)or(obeg=79)or(obeg=85)or(obeg=89) then begin
asymmetric:=true;
end
else begin
asymmetric:=false;
if (oend=65)or(oend=69)or(oend=73)or(oend=79)or(oend=85)or(obeg=89) then
asymmetric:=false;
end;
if (oend=65)or(oend=69)or(oend=73)or(oend=79)or(oend=85)or(obeg=89) then begin
asymmetric:=true;
if (obeg=65)or(obeg=69)or(obeg=73)or(obeg=79)or(obeg=85)or(obeg=89) then
asymmetric:=false;
end;
end;
end;
begin
randomize;
buf:='';
nstr:=0;
for i:=1 to 20 do begin
for j:=1 to 10 do begin
GetWord(w);
a[i,j]:=w;
for k:=1 to 7 do
if ord(w[k])32 then nstr:=nstr+1;
end;
mstr[i]:=nstr;
nstr:=0;
end;
for i:=1 to 20 do begin
for j:=1 to 10 do begin
w:=a[i,j];
for k:=1 to 7 do
buf:=buf+w[k];
if (mstr[i]
    #6   e1eKTrik @ 23.01.08 19:53 [пожаловаться]   
and asymmetric(w) then
begin
summa:=summa+1;
TextColor(green);
end
else TextColor(white);
write(buf);
TextColor(white);
write('|');
buf:='';
end;
end;
writeln ('Number of words - ',summa:2:0);
readln;
end.
    #7   showt1me @ 23.01.08 19:54 [пожаловаться]   
ЛОЛ, зачем массив ? Создаем множество из согласных букв и проверяем символ на вхождение ... Входит - буква согласная , нет - гласная ...
    #8   e1eKTrik @ 23.01.08 19:54 [пожаловаться]   
Вариант описанный выше(не мой)
    #9   e1eKTrik @ 23.01.08 19:56 [пожаловаться]   
Вся особенность именно в создании массива и получения рандомных слов, причем подходящие из массива должны выделяться цветом
    #10   Gg_rus_creW @ 23.01.08 19:57 [пожаловаться]   
это ты сам написал?Smileя давно уже паскаль изучал, но как я понял программа будет работать для слов не больше 7ми символов и текста состоящего из не болле 20ти слов...

по моему тупа масс if'ы решают:-)

если конечно это задача не на какую-нить специальную тему, типа там, рекурсия...или циклы:-)
    #11   showt1me @ 23.01.08 20:00 [пожаловаться]   
Так я предлагаю сделать множество просто для проверки на гласность, чтобы избежать подобных строк - if(obeg=65)or(obeg=69)or(obeg=73)or(obeg=79)or(obeg=85)or(obeg=89) then begin , или по условию все обязательно должны быть выполнено с использованием массивов ? В данном случае это не очень удобно
    #12   e1eKTrik @ 23.01.08 20:00 [пожаловаться]   
в том то и дело что задачка целенаправленная, а именно на создание Массивов множеств и работой с псевдослучайными последовательностями... я сам в шоке от того что задают людям после 11 класса на 1 курсе универа. Специальность замечу к программисту никакого отношения не имеет, это видимо так для общего развития
    #13   e1eKTrik @ 23.01.08 20:04 [пожаловаться]   
http://www.proplay.ru/users/60574/gallery/ вот как должна выглядеть программа
    #14   Gg_rus_creW @ 23.01.08 20:06 [пожаловаться]   
блин, всю жизнь ругался на нашу систему образования..."для общего развития"...блин, с массивом и впрям нифига не удобно, а если слово больше чем из 3х букв?и слов этих больше чем 20?надо динамический массив, а это надо тип описывать, а это, блин, вложно...если б си...да и то не вспомню...короче извини...давно это было...паскальSmile
    #15   e1eKTrik @ 23.01.08 20:09 [пожаловаться]   
да в принципе я тоже так думаю сомневаюсь что препод сам точно знает как это делает я думаю что сдам эту работу и скажу что это именно то что он просит) прокатит не зря же я деньги за учебу плачу)
    #16   e1eKTrik @ 23.01.08 20:11 [пожаловаться]   
а вообще отпишитесь пожалуйста то кто понимают)Мне просто любопытно как это сделать на самом деле ?
    #17   showt1me @ 23.01.08 20:12 [пожаловаться]   
Так тебе чего надо было ? Написать тебе как это выполнить или объяснить принцип просто ? Там делать то нечего по сути ...
    #18   e1eKTrik @ 23.01.08 20:14 [пожаловаться]   
нет желательно конечно помочь) но если это требует усилий) то никого конечно не заставляю просто расскажите)
    #20   showt1me @ 23.01.08 20:17 [пожаловаться]   
Ну а более там никаких ограничений нет, кроме тех что надо массивы использовать ? Просто обычно в лабах разрешают использовать все, что сам хочешь, хоть строки на ассемблере вставляй ...
    #21   Gg_rus_creW @ 23.01.08 20:18 [пожаловаться]   
ппц, дак смотря как делать, самый простой способ(я уже писал) масс if'ы, массив в этой задаче бесполещен...
а принцип прост, побуквенно считываешь слово, проверяешь каждую букву на принадлежность к согласной, запоминая номера согласных, а потом сравниваешь эти номера...
    #22   showt1me @ 23.01.08 20:21 [пожаловаться]   
Тебе не каждая буква нужна, а лишь первая и средняя ... Тоесть надо всего то посчитать кол-во этих букв, разделить на два и проверить первую букву и полученную только что ... Проверять лучше всеже гласность, ибо гласных букв меньше соответственно и само условие проверки будет короче ...
    #24   showt1me @ 23.01.08 20:25 [пожаловаться]   
Так вон же они множества в теме то и даже в задании написано что поиск через них ... Эх масс if , масс if ...
Ща напишу тебе кусок выполняющий проверку только первого пункта ...
    #25   e1eKTrik @ 23.01.08 20:26 [пожаловаться]   
Лабораторная работа №7.
Тема. Массивы. Множества. Работа с псевдослучайными последовательностями(ПСП).
Задание. С помощью ПСП сформировать двухмерный MxN массив из элементов. В качестве элементов использовать слова из K...L символов A...Z(одномерный массив символов латинского алфавита). Осуществить подсчет элементов, удовлетворяющих условиям задания. Проверку заданных условий поиска реализовать и использованием типа множества. Вывести на экран сформированный массив, выделив цветом подсчитанные элементы. Вывести результат подсчета на экран в отдельное окно.(Здесь M и N - соответственно число строк и столбцов формируемой матрицы; K и L - соответственно минимальное и максимальное число букв в формируемых словах элементах массива).
Методические указания
При формировании массива использовать стандартные подпрограммы ПСП - Random, Randomize, а также, возможно использование функции CHR. Коды ASCII символов A...Z - 65...90. Слова формируются в одномерных массивах, каждый из которых состоит из L ячеек, буквы записываются без пробела, начиная с первой ячейки.
Незаполненные буквами позиции массива в конце слов заполнить символами пробела - код ASCII - 32.
Для вывода на экран строки заданного текста необходимо:
- в программе указать об использовании модуля CRT(USER CRT; - эта директива должна присутствовать в начале текста программы).
- Перед использованием стандартной процедуры вывода необходимо задать цвет вывода соответствующим значением параметра Х стандартной процедуры TextColor(x)
    #26   e1eKTrik @ 23.01.08 20:27 [пожаловаться]   
мои значения K=2 L=7 M=20 N=10
    #27   Gg_rus_creW @ 23.01.08 20:33 [пожаловаться]   
#24 ты прав...
сорри, я все уже забыл...был бы я щас на 1-2 курсе, мин за 10 написал бы прогу...
    #29   Gg_rus_creW @ 23.01.08 20:47 [пожаловаться]   
???
    #30   showt1me @ 23.01.08 20:55 [пожаловаться]   
Короче на примере как изменить данный вариант , в описание добавляй
const glasn: set of 65..90 = [65,69,73,79,85,89]; //тут еще надо проверить правильно ли я коды гласных выписал, если че дописать или удалить лишние

function asymmetric(var ww:s):boolean;
var
n,c:integer;
begin
n := 0;
for c := 1 to 7 do
if ww[c] '' then n := n + 1; //Подсчет кол-ва символов в строке
n := n div 2 + 1; //Определение средней буквы
if (not (ord(ww[n]) in glasn)) and (not (ord(ww[1]) in glasn)) then
asymmetric := true //Условие выолняется
else
asymmetric := false;//Условие не выполняется
end;

Как то так должно быть , остальной код проги я не читал , но я так понимаю эта ф-ия как раз и проверяет выполнение условия...

P.S В цикле который считает символы в строке должны быть неравно пробелу , почему то не отпечаталось ... Так же вариант работает если символов в строке нечетное число , т.е есть средний , лень было проверки ставить просто )
    #31   e1eKTrik @ 23.01.08 21:00 [пожаловаться]   
if (not (ord(ww[n]) in glasn)) строку не понял так и писать что ли он определит слолво glasn?
    #32   e1eKTrik @ 23.01.08 21:01 [пожаловаться]   
а все понял перечитал пост
    #33   e1eKTrik @ 23.01.08 21:03 [пожаловаться]   
Спасибо!!!!! сейчас будем тестить P.S. не поял замечания по поводу пробела
    #34   showt1me @ 23.01.08 21:07 [пожаловаться]   
Ну там написано if ww[c] '' then n := n + 1 , знак неравенства еще должен быть , тока она не отпечатался , типа если ww[c] не равен ' ' , то n := n + 1;
    #35   e1eKTrik @ 23.01.08 21:10 [пожаловаться]   
слушай у меня там тоже пусто а ехешник работает исправно) наверное файл повредился не подскажешь что там поставить?)
    #36   showt1me @ 23.01.08 21:11 [пожаловаться]   
Ну знак неравенства )
    #37   e1eKTrik @ 23.01.08 21:12 [пожаловаться]   
это я понял) > < >=
    #38   e1eKTrik @ 23.01.08 21:13 [пожаловаться]   
я извиняюсь я наверное сейчас выгляжу несведующим в этом деле) просто так и есть я в паскале почти ничего не понимаю)Программирование для меня это if else readln writeln sry если что)
    #39   showt1me @ 23.01.08 21:14 [пожаловаться]   
Это < > , без пробела внутри )
    #40   e1eKTrik @ 23.01.08 21:19 [пожаловаться]   
ты извини канеш) напиши полностью строчку Surprisedops:
    #41   e1eKTrik @ 23.01.08 21:24 [пожаловаться]   
ещё такой вопрос а если в слове четное количество букв что считается серединой ?
    #42   showt1me @ 23.01.08 21:28 [пожаловаться]   
if ww[c] < > '' then n := n + 1
Если четное, то хз чего серединой считать ... Я бы у препода спросил когда задание получал ) Ну так как я написал , получится что если букв 4 , то серединой будет 3 ... Можно сделать проверку на четность кол-ва букв , и выдавать мессагу мол кол-во букв четное , так что средней нет ...
    #43   e1eKTrik @ 23.01.08 21:33 [пожаловаться]   
Спасибо огромное Showt1me а также всем кто помогал) Серьезно очень выручили) маленько работает) а больше нам не надо) Хорошо что ещё есть люди которые готовы друг другу помочь
    #44   Лев_Гноллов.w3x @ 23.01.08 21:34 [пожаловаться]   
Обоссацца в сапоги... Ребят, вы жж0те!

    Reply
Very Happy Smile Sad Surprised Shocked Confused Cool Laughing Mad Razz Embarassed Crying or Very sad Evil or Very Mad Twisted Evil Rolling Eyes Wink Exclamation Question Idea Arrow

New topic
Unsubscribe

    Event




    Next tourneys

Add tourney


    Last blogs
Казино вавада онлайн (2)
Online casino (4)
НУЖЕН СОВЕТ БРАБЛЕЯ (16)
СМОКЕРПУП (0)
мои соски упруги, а ваши ... (3)
Записки без смысла [5] (16)
Ф (1)

    Random galleries
voVer: Rocket Launcher

dratata: опыт

SPo1LeR[oldschool]: Зенит Чемпион !

sgUuu: Пэйнт


    Searching a new authors!

ProPlay.ru ищет новых авторов. Прочитайте "Памятку для авторов" и, если заинтересовались, пишите нам miker@proplay.ru


    Links



Rambler's Top100
Яндекс цитирования Rambler's Top100

Copyright © 2006-2007 www.proplay.ru. All rights reserved.
Полное или частичное использование материалов сайта www.proplay.ru возможно только с письменного разрешения редакции.

Нашёл на сайте ошибку? Сообщи редакции!