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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2008, 09:13   #1
LLIypLLIyH
Пользователь
 
Аватар для LLIypLLIyH
 
Регистрация: 27.05.2008
Сообщений: 58
По умолчанию Помогите с заданиями в PASCAL

1. В небоскрёбе N этажей и всего один подъезд; на каждом этаже по 3 квартиры; лифт может останавливаться только на нечетных этажах. Человек садится в лифт и набирает номер нужной ему квартиры М. На какой этаж должен доставить лифт пассажира?
2. Долгожитель (возраст не менее 100 лет) обнаружил однажды, что если к сумме квадратов цифр его возраста прибавить число дня его рождения, то как раз получится его возраст. Сколько лет долгожителю?

Графика
3.y=-3(в степени 2x)+30
4. Нарисовать на экране катящееся по наклонной вида Y=k*X колесо с четырьмя спицами.
Массивы строки

1. Показать, что, если элементы какого-либо ряда определителя умножить на число, то определитель также умножится на это же число.
2. Строка Т состоит из слов, разделенных запятыми, подсчитать среднюю длину слов.
LLIypLLIyH вне форума Ответить с цитированием
Старый 11.06.2008, 11:02   #2
master_root
Пользователь
 
Регистрация: 18.05.2008
Сообщений: 30
По умолчанию

1.Было же уже. Вот код который был в прошлом твоём топике:
Код:
function func(N,M: integer): integer;
var
	res: integer;
begin
{получение этажа исходя из номера квартиры}
  res:=M div 3;
	if res <> (res-(M mod 3)) then
		res:=(M div 3)+1;
  if res>N then//если получившийся этаж больше введённого пользователем, то выдаём результат,который обнаружит нам ошибку 
  begin
    func:=-1;
    exit;
  end;
{если получившийся этаж чётный и непоследний, то высаживаем на более высоком нечётном этаже
 если получившийся этаж чётный и последний, то высаживаем на более низком нечётном этаже
 если получившийся этаж нечётный, то ничего не меняем и высаживаем его там где нужно}
	if (res mod 2) = 0 then
		if res<>N then
			res:=res+1
		else
			res:=res-1;
	func:=res;
end;
master_root вне форума Ответить с цитированием
Старый 11.06.2008, 11:03   #3
neomaximus
Пользователь
 
Регистрация: 11.06.2008
Сообщений: 47
По умолчанию

ОН не рабочий
neomaximus вне форума Ответить с цитированием
Старый 11.06.2008, 11:09   #4
master_root
Пользователь
 
Регистрация: 18.05.2008
Сообщений: 30
По умолчанию

3. Функция в аргументе принемает строку, а на выходе выдаёт среднее арифметическое длин всех слов в строке:
Код:
function func(str: string): integer;
var
	i: integer;
	j: integer;
	sum: integer;
	n: integer;
begin
	j:=1;
	n:=0;
  sum:=0;
	for i:=1 to Length(str) do
	begin
		if str[i]=' ' then
		begin
			sum:=sum+(i-j);
                        j:=i+1;
			n:=n+1;
		end;
	end;
	func:=sum div n;
end;

Последний раз редактировалось master_root; 11.06.2008 в 11:20.
master_root вне форума Ответить с цитированием
Старый 11.06.2008, 11:22   #5
neomaximus
Пользователь
 
Регистрация: 11.06.2008
Сообщений: 47
По умолчанию

что то не запускается
neomaximus вне форума Ответить с цитированием
Старый 11.06.2008, 11:30   #6
master_root
Пользователь
 
Регистрация: 18.05.2008
Сообщений: 30
По умолчанию

>neomaximus
Что в нём нерабочего? У меня всё работает и результат выдаёт корректный.
Например при использовании этой функции в программе с такими данными:
writeln(func(10,25));
он выдаст
9//правильный ответ
Ты может быть его неправильно используешь?
На всякий случай скажу как это делать(извени если принижаю твои знания) в консоли:
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

function func(N,M: integer): integer;
var
	res: integer;
begin
{получение этажа исходя из номера квартиры}
  res:=M div 3;
	if res <> (res-(M mod 3)) then
		res:=(M div 3)+1;
  if res>N then//если получившийся этаж больше введённого пользователем, то выдаём результат,который обнаружит нам ошибку 
  begin
    func:=-1;
    exit;
  end;
{если получившийся этаж чётный и непоследний, то высаживаем на более высоком нечётном этаже
 если получившийся этаж чётный и последний, то высаживаем на более низком нечётном этаже
 если получившийся этаж нечётный, то ничего не меняем и высаживаем его там где нужно}
	if (res mod 2) = 0 then
		if res<>N then
			res:=res+1
		else
			res:=res-1;
	func:=res;
end;

begin
writeln(func(10,23));
readln;
end.
или в win32(при условии, что есть форма Form1,кнопка Button1 и текстовое поле Edit1.При нажатии на кнопку в текстовое поле выводится результат функции):
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    function func(N,M: integer): integer;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Text:=inttostr(func(10,25));
end;

function TForm1.func(N,M: integer): integer;
var
	res: integer;
begin
{получение этажа исходя из номера квартиры}
  res:=M div 3;
	if res <> (res-(M mod 3)) then
		res:=(M div 3)+1;
  if res>N then//если получившийся этаж больше введённого пользователем, то выдаём результат,который обнаружит нам ошибку 
  begin
    func:=-1;
    exit;
  end;
{если получившийся этаж чётный и непоследний, то высаживаем на более высоком нечётном этаже
 если получившийся этаж чётный и последний, то высаживаем на более низком нечётном этаже
 если получившийся этаж нечётный, то ничего не меняем и высаживаем его там где нужно}
	if (res mod 2) = 0 then
		if res<>N then
			res:=res+1
		else
			res:=res-1;
	func:=res;
end;

end.
master_root вне форума Ответить с цитированием
Старый 11.06.2008, 11:32   #7
master_root
Пользователь
 
Регистрация: 18.05.2008
Сообщений: 30
По умолчанию

С функцией к третей задачи работать так же. И всё там работает 100%.
master_root вне форума Ответить с цитированием
Старый 11.06.2008, 11:33   #8
neomaximus
Пользователь
 
Регистрация: 11.06.2008
Сообщений: 47
По умолчанию

Вдиш мне не нужна кнопка. Надо с использованием операторов ветвления и циклов, простые проще говоря.

надо в консоли просто

Последний раз редактировалось Stilet; 11.06.2008 в 12:47.
neomaximus вне форума Ответить с цитированием
Старый 11.06.2008, 11:51   #9
master_root
Пользователь
 
Регистрация: 18.05.2008
Сообщений: 30
По умолчанию

ну так тут все выше перечисленные функции используют только ветвления и циклы.как работать с функцией в консоли я тебе объяснил-разбирайся
master_root вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с графиком PASCAL ANARHIST Помощь студентам 6 03.07.2008 18:54
Помогите с матрицей PASCAL ANARHIST Помощь студентам 6 03.07.2008 18:12
Помогите с заданиями в Excel Arxan Помощь студентам 5 15.05.2008 20:29
Помогите плиз с заданиями по Delphi7 grum Помощь студентам 1 01.03.2007 14:29