Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2007, 00:21   #1
Ksuha
Новичок
Джуниор
 
Регистрация: 15.10.2007
Сообщений: 2
Вопрос хелп 3 задачки на паскале

Помогите пажалуста глупой девушке которая зачем то поступила фивт. Надо сдать 3 лабы, как написать хз, одногрупники бесчуственные жывотные помочь не хотят (
1. Нужно найти среднее арифметическое элементов двумерного массива
2. Прога должна запрашивать слово, а потом выбирать из него только гласные буквы и выводить их
3. Прога должна запрашивать дату в формате хх.хх.хххх и после ввода говорить какой это день недели причем с учетом високосных годов

кто поможет буду очень вери признательна
Ksuha вне форума Ответить с цитированием
Старый 15.10.2007, 02:44   #2
Maslan
Форумчанин
 
Регистрация: 15.10.2007
Сообщений: 147
Счастье Задачка номер раз. ПРОЧИТАЙ И ПОПРАВЬ!

Код:
{
Будет два варианта - один для Delphi, второй - для TurboPascal т.к.
не понятно на чём вы там пишите.
Основное различие - в "чистом" паскале нет массивов переменной длины.
}
(* Это часть для Delphi *)
program Srednee;
{$APPTYPE CONSOLE}
uses
  SysUtils;
 (*начало программы для Delphi закончено *)
 (*Начало прогдаммы для Pascal
Program Srednee;
 (*начало программы для Pascal закончено *)

{Переменные для Delphi-варианта}
Var A:Array of array of extended; Lines,Columns,I,J:Integer; e:Extended;

{Перменные для TurboPascal-варианта}
Var B:Array[1..10] of array[1..20] of extended;k,l:integer;sred:extended;

begin
{Вариант для Delphi}
Write('Kolichestvo strok>');
ReadLn(Lines);
Write('Kolichestvo stolbcov>');
ReadLn(Columns);
SetLength(A,Lines);
For i:= 0 to Lines -1 do
SetLength(A[i],Columns);
For i:= 0 to Lines -1 do
  For j:= 0 to Columns -1 do
   begin
   Write('Element [',i,',',j,'] =?  >');
   Readln(A[i][j]);
   end;
e:=0;
For i:= 0 to Lines -1 do//Перебираем все строки
  For j:= 0 to Columns -1 do// в каждой строке - каждый столбец
   e:=e+A[i][j];
e:=e/(i*j);
WriteLn('Srednee=',e);
ReadLn;
{Вариант для Delphi закончен}

{Вариант для Turbo Pascal}
Sred:=0;
For i:= 1 to 10 do//Перебираем все строки
  For j:= 1 to 20 do// в каждой строке - каждый столбец
   Sred:=Sred+A[i][j];
Sred:=Sred/(i*j);
WriteLn('Srednee=',Sred);
ReadLn;
{Вариант для Turbo Pascal закончен}
end.
Maslan вне форума Ответить с цитированием
Старый 15.10.2007, 03:11   #3
Maslan
Форумчанин
 
Регистрация: 15.10.2007
Сообщений: 147
По умолчанию Задачка номер два.

В самом начале массив определяющий гласные. Т.к. я писал на Delphi "консольное приложение" (типа как паскаль делает), то пришлось использовать буквы DOS в программе Win - поэтому там не букву, а крякозяблы. Если нужно - поправь. Порядок букв не важен, просто все большие и маленькие гласные перечисли.
Код:
Var Glasnie:Array[1..20] of char=('Ђ','…','?','Ћ','“','ќ','ћ','џ','р','›',
'*','Ґ','Ё','®','г','л','н','о','п','с');
Slovo:String;
i:Integer;
Bukva:Char;
begin
  Write('Vvedite Stroku:');
  readLn(Slovo);
  Write('Glasnie:');
  For i:=1 to Length(Slovo) do
   begin
    Bukva:=Slovo[i];
    if    (Bukva=Glasnie[1])OR(Bukva=Glasnie[2])OR(Bukva=Glasnie[3])OR      
         (Bukva=Glasnie[4])OR(Bukva=Glasnie[5])OR(Bukva=Glasnie[6])OR        
         (Bukva=Glasnie[7])OR(Bukva=Glasnie[8])OR(Bukva=Glasnie[9])OR 
         (Bukva=Glasnie[10])OR(Bukva=Glasnie[11])OR(Bukva=Glasnie[12])OR
         (Bukva=Glasnie[13])OR (Bukva=Glasnie[14])OR (Bukva=Glasnie[15])OR
         (Bukva=Glasnie[16])OR(Bukva=Glasnie[17])OR (Bukva=Glasnie[18])OR
         (Bukva=Glasnie[19])OR(Bukva=Glasnie[20])
   then write(Bukva)
   else write('*');
 end;
ReadLn;
end.

В результате будет что-то такое:
Код:
Vvedite Stroku:Мама мыла раму.
Glasnie:*а*а**ы*а**а*у*
Maslan вне форума Ответить с цитированием
Старый 15.10.2007, 03:33   #4
Maslan
Форумчанин
 
Регистрация: 15.10.2007
Сообщений: 147
Счастье И задачка номер три.

А вот тут не всё так просто...


Код:
program DayOf;
{$APPTYPE CONSOLE}
Uses SysUtils;
const
  YEARS  : array[0.. 3] of byte = (0, 2, 3, 4);
  MONTHS : array[1..12] of byte = (0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5);
  DAYOFWEEKS  : array[0..6] of string =
    ('Voskresenie', 'Poned', 'Vtor', 'Sred', 'Chet','Pjat', 'Sub');

var
  a,b,c,d,e,f,tmp : byte;
  day,month,year: word;
  s:String;
begin
Write('Vvedite datu v formate dd.mm.yyyy >');
ReadLn(s);
day:=StrToInt(s[1]+s[2]);
month:=StrToInt(s[4]+s[5]);
year:=StrToInt(s[7]+s[8]+s[9]+s[10]);                                 
    tmp := year - 1996;
    a := tmp and 3;
    b := (tmp shr 2) + (tmp and $FC);                                     
    c := MONTHS[month];
    if (a = 0) and (month > 2) then inc(c);                             
    a := YEARS[a];
    e := (a + b + c + day) mod 7;                                      
    writeln('Vvedennij denj: ', DAYOFWEEKS[e]);
    writeln;                                                           
Readln;
end.
Код практически не мой. Работает по григорианскому календарю - то есть после 1583 года.

Беда вот в чём: Если ты не училась весь семестр, то доказать преподу, что сама додумалась и сама написала задачи 1 и 2 хоть как-то можно. Но вот с этой, третьей, хоть землю ешь - не поверит.
Maslan вне форума Ответить с цитированием
Старый 15.10.2007, 08:16   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Маслан, ты со второй задачкой перебрал.
Ксюша вот вариант проще для второй :

[I]uses crt;
var s:string;i:integer;
begin
readln(s);writeln;
for i:=1 to length(s) do
if pos(s[i],'йуеыаоэиюя')<>0 then write(s);
end.


Да и еще, Маслан, Ксюша просила на ПАСКАЛЕ
I'm learning to live...

Последний раз редактировалось Stilet; 15.10.2007 в 08:21.
Stilet вне форума Ответить с цитированием
Старый 15.10.2007, 11:16   #6
Ksuha
Новичок
Джуниор
 
Регистрация: 15.10.2007
Сообщений: 2
Смех

Всем огромное спасибо за помощь =)
Цитата:
Беда вот в чём: Если ты не училась весь семестр, то доказать преподу, что сама додумалась и сама написала задачи 1 и 2 хоть как-то можно. Но вот с этой, третьей, хоть землю ешь - не поверит.
Не ну я все таки что то знаю, до этого же 5 лаб сама написала Обьяснить думаю смогу, а что касается 3 проги я нашла подробное описание о том как она пишется, с примером http://ruseti.ru/book14/gl2/gl2_7_1.html

но все равно еще раз всем ОГРОМНОЕ спасибо
Ksuha вне форума Ответить с цитированием
Старый 16.10.2007, 12:58   #7
vit_galina
Пользователь
 
Регистрация: 15.10.2007
Сообщений: 19
По умолчанию задачки на Паскале

1. Нужно найти среднее арифметическое элементов двумерного массива
2. Прога должна запрашивать слово, а потом выбирать из него только гласные буквы и выводить их
3. Прога должна запрашивать дату в формате хх.хх.хххх и после ввода говорить какой это день недели причем с учетом високосных годов
Есл это лаб. рабы, то нужно не просто какой-либо алгоритм использовать, а в соответствии с темой Лабы. Сами по себе темы не очень сложные.
1)
среднее арифметическое элементов двумерного массива - это сумма элементов этого массива, деленная на К- количество элементов (для 2-х мерного это К=m x n, где m - кол-во строк, n- кол-во столбцов).
2) Вторая задача скорее всего на множества. Задать множество из всех гласных букв. При переборе очередной буквы слова, просто проверять принадлежит она множеству или нет, если принадлежит, т.е. содержит гласные буквы, то формировать из них подстроку или просто сразу выводить на экран.
Если Вы уже сдавали много лабрабов, то не составит труда реализовать алгоритмы. Успехов.
vit_galina вне форума Ответить с цитированием
Старый 16.10.2007, 13:11   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Вторая задача скорее всего на множества
В посте №5 замени условие на
if s[i] in ['й','у'... и так далее остальные буквы] then Вывести на экран
Впиши в [] нужные тебе буквы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.10.2007, 13:59   #9
Maslan
Форумчанин
 
Регистрация: 15.10.2007
Сообщений: 147
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
В посте №5 замени условие на
if s[i] in ['й','у'... и так далее остальные буквы] then Вывести на экран
Впиши в [] нужные тебе буквы.
А родной паскаль поддерживает in ?
Maslan вне форума Ответить с цитированием
Старый 16.10.2007, 14:15   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А в хелп заглянуть? )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 задачки на паскале - помогалки :-) alexeichik Помощь студентам 1 21.05.2008 15:10
Как обозначается корневой каталог программы? BeeX Свободное общение 1 25.11.2007 20:25
Хелп BETONOMESHALKA Общие вопросы Delphi 4 28.06.2007 12:57