![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Помогите плиз решить задачу в Turbo Pascal 7.0, вторую неделю ковыряюсь уже, не могу решить:
Задача Результат нужно представить в виде исходника с расширением *.pas Заранее спасибо.
__________________
Не знаешь - не флуди! ![]() Хороший форум - чистый форум.
|
|
|
|
|
| Реклама: | удаление зуб мудрости цена | Подвеска Пяточка из красного золота 585 пробы | концерт руки вверх 2026 иркутск - redkassa.ru | Мебельный магазин: стол обеденный раскладной - Переходи на сайт! | Мебельный магазин: лавочку - Переходи на сайт! |
|
|
#2
|
|||||||||||||||||||
|
Постоялец
![]() ![]() ![]() ![]() ![]() Пол:
Регистрация: 07.10.2005
Сообщений: 760
Репутация: 166
|
Это сделал? |
|||||||||||||||||||
|
|
|
| Сказали спасибо: |
|
|
#3
|
|||||||||||||||||||||||
Я то сделал, но там должно быть все увязано в одной программе, вот это я сделать не могу.
__________________
Не знаешь - не флуди! ![]() Хороший форум - чистый форум.
|
||||||||||||||||||||||||
|
|
|
|
|
#4
|
|||||||||||||||||||
|
Постоялец
![]() ![]() ![]() ![]() ![]() Пол:
Регистрация: 07.10.2005
Сообщений: 760
Репутация: 166
|
Ну тогда пости что сделал и показывай что не получается. Глупо каждому с начала решать одно и тоже. Проще и быстрее посмотреть где у тебя затык, чтобы решить его.
У тебя есть отдельные процедуры, но увязать их в один модуль ты не можешь? Последний раз редактировалось axlwor; 13.03.2008 в 23:32.. |
|||||||||||||||||||
|
|
|
| Сказали спасибо: |
|
|
#5
|
|||||||||||||||||||||||
Ха, прикололо! А выводной девайс какой? Или это предлагаеться на стандортной ДОС-моде сделать? Тогда четко должны проговорены, какие библиотеки должны быть использованы!
__________________
Беда пришла откуда ее не ждали - наступило утро! ![]() i7 4770, 24Gb, 8Gb 1070Ti, X-Fi Fatal1ty, APC SUA1000, iiYama 514, TH-50PF11, Behringer MS20 |
||||||||||||||||||||||||
|
|
|
| Сказали спасибо: |
|
|
#6
|
|
Warezhunter, ниже программа которая заполняет и выводит массив на экран, если всё устраивает допишу проверку условий и выделение цветом... Кстати не понятно цветом выделять слова удовлетворяющие и 1-му и 2-му условию? Или слова удовлетворяющие условию 1 выделять одним цветом, а удовлетворяющие условию 2 другим??
Код:
Program NoWa;
Uses
Crt;
Const
K = 2;
L = 7;
M = 20;
N = 10;
Type
Slovo = array[1..L] of char;
Massiv = array[1..M,1..N] of Slovo;
Var
A: massiv;
Procedure VvodSlova(var z: Slovo);
Var
i,n: byte;
Begin
n := K + Random(6);
for i := 1 to L do
if i <= n
then z[i] := Chr(65 + Random(26))
else z[i] := Chr(32);
End;
Procedure VvodMass(var z: massiv);
Var
i,j: byte;
Begin
Randomize;
for i := 1 to M do
for j:= 1 to N do
VvodSlova(z[i,j]);
End;
Procedure PrintMass(z: massiv);
Var
i,j: byte;
Begin
for i := 1 to M do
begin
for j:= 1 to N - 1 do
Write(z[i,j], ' ');
Write(z[i,j]);
Writeln;
end;
End;
Begin
ClrScr;
VvodMass(A);
PrintMass(A);
Repeat Until KeyPressed
End.
__________________
Всё знать и уметь не возможно, но стремиться к этому надо...
Последний раз редактировалось Nozorrog; 14.03.2008 в 19:25.. |
|
|
|
|
| Сказали спасибо: |
|
|
#7
|
|
DinAmiT, Массив у тебя 3-мерный получился....
И не совсем понятно по задачи - действительно нужна полная диначичность? Или все решается на уровне компиляции?
__________________
Беда пришла откуда ее не ждали - наступило утро! ![]() i7 4770, 24Gb, 8Gb 1070Ti, X-Fi Fatal1ty, APC SUA1000, iiYama 514, TH-50PF11, Behringer MS20 |
|
|
|
|
| Сказали спасибо: |
|
|
#8
|
|||||||||||||||||||||||
Двумерный массив слов... Слово - семь символов можно в принципе и двумерный массив типа string[6] описать... суть бы от этого неизменилась. String это тот же массив символов (char) от 0 до 255... P.S.: Гы... не могу предыдущее своё сообщение отредактировать... процедура PrintSlova там лишняя...
__________________
Всё знать и уметь не возможно, но стремиться к этому надо...
Последний раз редактировалось DinAmiT; 14.03.2008 в 01:30.. |
||||||||||||||||||||||||
|
|
|
| Сказали спасибо: |
|
|
#9
|
|
DinAmiT, формально по заданию - слово строиться как линейный массив из CHAR с условием максимальной генерации (забиванием пробелами).
__________________
Беда пришла откуда ее не ждали - наступило утро! ![]() i7 4770, 24Gb, 8Gb 1070Ti, X-Fi Fatal1ty, APC SUA1000, iiYama 514, TH-50PF11, Behringer MS20 |
|
|
|
|
| Сказали спасибо: |
|
|
#10
|
|||||||||||||||||||||||
Ну... а я про что...?! Это ли не оно Slovo = array[1..L] of char Как в задании было, так и сделал..., т.е. двумерный массив слов Massiv = array[1..M,1..N] of Slovo, "на взгляд" он конечно выглядит как трехмерный массив, но на самом деле это двумерный массив слов описанного типа Slovo, как в задании... Warezhunter, с условием всё понятно нужны слова удовлетворяющие и первому и второму условию, вот твоя программа: Код:
Program NoWa;
Uses
Crt;
Const
K = 2;
L = 7;
M = 20;
N = 10;
Type
Slovo = array[1..L] of char;
Massiv = array[1..M,1..N] of Slovo;
Var
A: massiv;
Kol_Slov: integer;
Procedure VvodSlova(var z: Slovo);
Var
i,n: byte;
Begin
n := K + Random(6);
for i := 1 to L do
if i <= n
then z[i] := Chr(65 + Random(26))
else z[i] := Chr(32);
End;
Function Proverka1(z: Slovo): boolean;
Const
alf: string[5] = 'AEIOUY';
Var
i,j, lenght, kol: byte;
Begin
kol := 0;
for i := 1 to L do
begin
if z[i] = ' ' then
begin
lenght := i - 1;
Break;
end;
if (i = 7) then lenght := i;
for j := 0 to 5 do
if z[i] = alf[j] then
begin
Inc(kol);
Break;
end;
end;
if (lenght mod 2 <> 0) and (kol >= 2)
then Proverka1 := true
else Proverka1 := false;
End;
Procedure VvodMass(var z: massiv);
Var
i,j: byte;
Begin
Randomize;
for i := 1 to M do
for j:= 1 to N do
VvodSlova(z[i,j]);
End;
Procedure PrintMass(z: massiv; var kol: integer);
Var
i,j: byte;
Begin
kol := 0;
for i := 1 to M do
begin
for j := 1 to N do
begin
if Proverka1(z[i,j]) = true
then
if (j mod 2 <> 0) and (i mod 3 = 0)
then
begin
TextColor(10);
Inc(kol);
end
else TextColor(14)
else TextColor(7);
if j <> N then Write(z[i,j], ' ')
else Write(z[i,j])
end;
Writeln;
end;
End;
Begin
ClrScr;
VvodMass(A);
PrintMass(A, Kol_Slov);
Writeln;
Write('Количество слов удовлетворяющих условию = ', Kol_Slov);
Repeat Until KeyPressed
End.
(можно запустить и посмотреть как будет выглядеть...) А вот скрин: [IMG]http://img181.**************/img181/1923/nowakb2.jpg[/IMG] На скрине в массиве желтым цветом для наглядности выделены слова удовлетворяющие условию 1, а зеленым удовлетворяющие всем условиям они же и посчитаны... Вроде получилось то что нужно, если надо подкорректировать чего-то Пиши!!! Успехов!!! )
__________________
Всё знать и уметь не возможно, но стремиться к этому надо...
Последний раз редактировалось DinAmiT; 14.03.2008 в 11:10.. |
||||||||||||||||||||||||
|
|
|
| Эти 2 пользователя(ей) сказали cпасибо за это полезное сообщение: |
|
|
#11
|
|
Я только самое простое на паскале могу сделать, а это не могу. DinAmiT, спасибо, попробую завтра отнести это преподу.
__________________
Не знаешь - не флуди! ![]() Хороший форум - чистый форум.
Последний раз редактировалось Warezhunter@; 14.03.2008 в 19:28.. |
|
|
|
|
|
|
#12
|
|
DinAmiT, Сорь, на свежую голову (в смысле приперся с работы не в 3 часа ночи а в 11) прочитал, твоя правда.
Кстати, для нетипичности можно проверку на вхождение гласной сделать через Set. Тогда процедурка сводиться к: Код:
Function Proverka1(z: Slovo): boolean;
Type
Letters=Set of 'A'..'Z';
Const
glassnaj:Letters = ['A','E','I','O','U','Y'];
Var
i,gl:integer;
Begin
gl:=0;
i:=1;
repeat
inc(gl,integer(a[i] in glassnaj));
inc(i)
until (a[i]=' ') or (i=L+1);
Proverka1:=((i-1) mod 2 <> 0) and (gl >= 2)
End;
__________________
Беда пришла откуда ее не ждали - наступило утро! ![]() i7 4770, 24Gb, 8Gb 1070Ti, X-Fi Fatal1ty, APC SUA1000, iiYama 514, TH-50PF11, Behringer MS20 Последний раз редактировалось Zhlobny Hmur; 20.03.2008 в 11:51.. Причина: Подправил код под типы DinAmiT |
|
|
|
|
| Эти 2 пользователя(ей) сказали cпасибо за это полезное сообщение: |
|
|
#13
|
|||||||||||||||||||
|
Опять проблема, теперь надо сделать то же самое, но только условие поменялось
__________________
Не знаешь - не флуди! ![]() Хороший форум - чистый форум.
|
||||||||||||||||||||
|
|
|
|
|
#14
|
|
Warezhunter@, Блин, делать то тут нечего.
1) Перед вызовом PrintMass опредлеляешь столбец, удовлетворяющий твоим условиям, заносим полученное значение в FindColumn, скажем. 2) Меняешь процедуру Proverka1 на определение согласных 3) чуток меняешь PrintMass Код:
if Proverka1(z[i,j]) and (J=FindColumn) then
begin
TextColor(10);
Inc(kol)
end
else TextColor(7);
З.Ы. Если не секрет, где так от программирования народ отгоняют?
__________________
Беда пришла откуда ее не ждали - наступило утро! ![]() i7 4770, 24Gb, 8Gb 1070Ti, X-Fi Fatal1ty, APC SUA1000, iiYama 514, TH-50PF11, Behringer MS20 |
|
|
|
|
| Сказали спасибо: |
|
|
#15
|
||||||||||||||||||||||||||||||||||||||
|
Zhlobny Hmur,
Мне надо конкретно знать, где и чего менять. Если результат заносить в FindColumn, то эту переменную надо сначало объявить в разделе var. Может я не прав, за количество столбцов и строк отвечают вроде переменные kol и lenght соответственно? И что надо поменять на определение согласных:
на
? Такую хрень мне уже второй раз дают в политехе.
__________________
Не знаешь - не флуди! ![]() Хороший форум - чистый форум.
|
|||||||||||||||||||||||||||||||||||||||
|
|
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Помгоите решить такую вот интересную задачу!!! | vov4ka | ASP.NET | 3 | 07.06.2011 11:07 |
| Помгоите решить такую вот интересную задачу!!! | vov4ka | Java Script | 2 | 06.03.2010 18:17 |
| Помогите плиз решить задачу в пакете Mathematica,За вознаграждение) | Евгенияяяя | Программирование | 0 | 16.12.2009 12:42 |
| Помогите решить проблему | Jep | Компьютерные проблемы | 2 | 29.03.2009 00:48 |
| Помогите решить проблему с USB | anradR | Компьютерные проблемы | 6 | 02.03.2009 01:48 |
|
|