Помощь с pascal`ем, решение задач
|
main
Опытный юзверь
Группа: Пользователи Сообщений: 146 Регистрация: 4.06.2005 Из: г.Красноярск Пользователь №: 19.586
Респектов: 3
Предупреждений: 0
| Люди мне надо решить восемь задач в паскале, если есть кто в нем рулит помогите, а то я сам не успею. | |
| |
11.01.2009 - 13:25 |
kaMMarik
Unregistered
| ОЁ чё я намутил!!! ну короче в тему только последняя читата, и после неё...код... просто я ещё не разобрался куда тут на этом форуме тыкать =)
i |
|
Уведомление:
Уже поправил, а разобраться поможет этот раздел нашего форума.
|
|
|
| |
26.02.2009 - 5:38 |
SPiRiT
профи!
Группа: Наши Люди Сообщений: 1.098 Регистрация: 23.01.2005 Из: Краснодар Пользователь №: 4.820
Респектов: 51
| приветы! по учебе не могу справиться с двумя задачами по Turbo Pascal.! может кто-нить может помоч мне, вообще никак задачи не пойму, уж больно сложно все это для меня, да так, что я ваще нулевой чета в них Решение задач с использованием индексированных переменных: МАССИВЫ И ВЕКТОРЫ.Цитата | Quote 1. В Е К Т О Р Ы
1.11. CONST N=40; VAR X:ARRAY[1..N] OF INTEGER; Y,K:INTEGER; T:BOOLEAN; Переменной T присвоить значение TRUE, если в массиве Х нет нулевых элементов и при этом положительные эле- менты чередуются с отрицательными, и значение FALSE иначе.
Цитата | Quote 2. М А Т Р И Ц Ы
2.11. VAR A:ARRAY[1..8,1..10] OF INTEGER; B:ARRAY[1..8] OF BOOLEAN; по массиву А получить массив В, присвоив его k-му эле- менту значение TRUE, если выполнено указанное ниже ус- ловие, и значение FALSE - иначе: k-я строка массива А симметрична.
Заранее приогромнейшая благодарность! Если можно плиз, то и блок-схемы с меня тоже требуют | |
| |
26.02.2009 - 9:18 |
charodey_mag
Опытный юзверь
Группа: Пользователи Сообщений: 147 Регистрация: 15.02.2007 Из: Opera Пользователь №: 335.462
Респектов: 22
Предупреждений:
| Если все правильно понял то вот: Code //Задание 1.11 function Check111:boolean; const N=40; VAR X:ARRAY[1..N] OF INTEGER; Y,K:INTEGER; T:BOOLEAN; begin T:=true; K:=0; for Y:=1 to N do begin if X[N]=0 then begin T:=false; break; end; case k of 0:if X[Y]>0 then K:=1 else K:=-1; 1:if X[Y]<0 then K:=-1 else begin T:=false; break; end; -1:if X[Y]>0 then K:=1 else begin T:=false; break; end; end; end; result:=T; end; //Задание 2.11 procedure Check211; VAR A:ARRAY[1..8,1..10] OF INTEGER; B:ARRAY[1..8] OF BOOLEAN; i,k:integer; tb:boolean; begin for i:=1 to 8 do begin tb:=true; for k:=1 to 5 do if A[i,k]<>A[i,11-k] then begin tb:=false; break; end; B[i]:=tb; end; end;
Блок схеиы рисовать ненавижу и поэтому не умею((( | |
| |
26.02.2009 - 16:57 |
SPiRiT
профи!
Группа: Наши Люди Сообщений: 1.098 Регистрация: 23.01.2005 Из: Краснодар Пользователь №: 4.820
Респектов: 51
| charodey_mag, вау! спасибо тебе огромное, щас оформлю все и попробую сдать! Еще раз спасиба тебе!!! | |
| |
5.03.2009 - 19:36 |
SPiRiT
профи!
Группа: Наши Люди Сообщений: 1.098 Регистрация: 23.01.2005 Из: Краснодар Пользователь №: 4.820
Респектов: 51
| приветы! вот на сдаче сессии не могу разобраться с лабораторной по Pascal на тему Массивы и индексированные переменные. P.S отдельное спасибо charodey_mag за помощь в этой лабораторной!!! Само задание выглядит так: Цитата | Quote {2.11. VAR A:ARRAY[1..8,1..10] OF INTEGER; B:ARRAY[1..8] OF BOOLEAN; по массиву А получить массив В, присвоив его k-му эле- менту значение TRUE, если выполнено указанное ниже ус- ловие, и значение FALSE - иначе: k-я строка массива А симметрична.}
я вот нарешал тут кой-чо, но это все как бы выходит недоделанно и как бы возможно соединить из нескольких программ в одну придется, только я не справлюсь с этим никак =( сначала я сделал как процедуру, но это не вписалось в задание: Code procedure Check211; VAR A:ARRAY[1..8,1..10] OF INTEGER; B:ARRAY[1..8] OF BOOLEAN; i,k:integer; tb:boolean; begin for i:=1 to 8 do begin tb:=true; for k:=1 to 5 do if A[i,k]<>A[i,11-k] then begin tb:=false; break; end; B[i]:=tb; end; end;
...потом из эту же процедуру переписал как программу, чтобы был вывод результата, но это опять не понравилось преподавателю и я так понял вывод результата не тут и не такой: Code program lab62; uses crt; VAR A:ARRAY[1..8,1..10] OF INTEGER; B:ARRAY[1..8] OF BOOLEAN; i,k:integer; tb:boolean; begin clrscr; for i:=1 to 8 do begin tb:=true; for k:=1 to 5 do if A[i,k]<>A[i,11-k] then begin tb:=false; break; end; B[i]:=tb; end; writeln(tb); end.
вот последний вариант переделанный мною уже получше, но тут не указана симметричность (k-я строка массива А симметрична): Code program lab62; uses crt; VAR A:ARRAY[1..8,1..10] OF INTEGER; B:ARRAY[1..8] OF BOOLEAN; i,k:integer; tb:boolean; begin clrscr; for i:=1 to 8 do begin tb:=true; for k:=1 to 5 do if A[i,k]<>A[i,11-k] then begin tb:=false; break; end; B[i]:=tb; end; writeln(tb); end.
| |
| |
5.03.2009 - 20:57 |
charodey_mag
Опытный юзверь
Группа: Пользователи Сообщений: 147 Регистрация: 15.02.2007 Из: Opera Пользователь №: 335.462
Респектов: 22
Предупреждений:
| Может такой вариант пойдет PS. От tb лучше вообще изавиться заменив его везде на B[i], это я чето не отом подумал Code program lab62; uses crt; VAR A:ARRAY[1..8,1..10] OF INTEGER; B:ARRAY[1..8] OF BOOLEAN; i,k:integer; begin clrscr; for i:=1 to 8 do begin B[i]:=true; for k:=1 to 5 do if A[i,k]<>A[i,11-k] then begin B[i]:=false; break; end; if B[i] then writeln(i,' строка симметрична') else writeln(i,' строка асимметрична'); end; readln; end.
| |
| |
6.03.2009 - 11:31 |
SPiRiT
профи!
Группа: Наши Люди Сообщений: 1.098 Регистрация: 23.01.2005 Из: Краснодар Пользователь №: 4.820
Респектов: 51
| Еще раз большое тебе спасибо за помощь! я там по-другому сделал, просто для проверки 5-ую строку симметричной! | |
| |
6.04.2009 - 16:56 |
SPiRiT
профи!
Группа: Наши Люди Сообщений: 1.098 Регистрация: 23.01.2005 Из: Краснодар Пользователь №: 4.820
Респектов: 51
| Поможите пожалуйста решить две несчастные задачки: СТАНДАРТНЫЙ ТИП STRING МОДУЛЬ STRINGSЦитата | Quote 11.Дана последовательность, состоящая из 10 слов. Напечатать все слова последовательности, удалив из каждого слова нечётные буквы, если слово имеет нечётное количество символов. М Н О Ж Е С Т В АЦитата | Quote 11. TYPE пpодукт = (хлеб, масло, мясо, pыба, соль, сыp, колбаса, сахаp, чай, кофе); ассоpтимент = set of пpодукт; магазины = array [1..20] of ассоpтимент; Описать пpоцедуpу "Наличие(Маг,А,В,С)", котоpая по инфоp- мации из массива Маг типа магазины ( Маг[i] - это множес- тво пpодуктов, имеющихся в i-м магазине ) пpисваивает паpаметpам А,В и С типа ассоpтимент следующие значения: А - множество пpодуктов, котоpые есть во всех магазинах; В - множество пpодуктов, каждый из котоpых есть хотя бы в одном магазине; С - множество пpодуктов, котоpых нет ни в одном магазине. | |
| |
7.04.2009 - 8:59 |
charodey_mag
Опытный юзверь
Группа: Пользователи Сообщений: 147 Регистрация: 15.02.2007 Из: Opera Пользователь №: 335.462
Респектов: 22
Предупреждений:
| Первая Code function ParseStr(source:string):string; var i,j,k,len:integer; ts:string; begin result:=''; for i:=1 to 10 do //10 ñëîâ begin k:=pos(' ',source); if k<>0 then begin ts:=copy(source,1,k-1); Delete(source,1,k); end else if i=10 then ts:=source else begin //меньше 10 слов !!! exit; end; len:=Length(ts); if (len and $01)<>0 then begin for j:=1 to len do if (j and $01)=0 then result:=result+ts[j]; result:=result+' '; end else result:=result+ts+' '; end; end;
Вторая Code procedure Presence(Mag: TMagazin;var A,B,C:TAssortiment); var i:integer; begin A:=[pHleb,pMaslo,pMyaso,pSol,pSir,pKolbasa,pSahar,pChay,pKofe]; C:=A; for i:=1 to 20 do begin A:=A*Mag[i]; B:=B+Mag[i]; C:=C-Mag[i]; end; end;
PS. (len and $01)<>0 В двоичной системе число заканчивающееся на 1 всегда не четное. Хотя я думаю это и так понятно. | |
| |
8.04.2009 - 11:41 |
SPiRiT
профи!
Группа: Наши Люди Сообщений: 1.098 Регистрация: 23.01.2005 Из: Краснодар Пользователь №: 4.820
Респектов: 51
| О, огромное спасибо! Тока нужно было чуточку без функций и процедур - попроще =))) | |
| |
|
|