Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 15.02.2009, 00:42   #1 (permalink)
samoel
Новичок
 
Регистрация: 15.02.2009
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Найти количество цифр в числе в паскале и еще 3 задачи.

Помогите решить задачи пожалуйста..

Пусть дано натурально число n (запись числа n в десятичной системе есть akak-1ak-2K…a0). Составьте программу для ответа на вопрос: Сколько цифр в числе n? (Например N=123 Ответ К=3)

Составить программу, которая по данному числу (1-12) выводит название соответствующего ему месяца.

Пусть даны целое число N, символы s1, s2, …, sn. Преобразуйте последовательность s1, s2, …, sn, удалив каждый символ звездочки (*) и повторив каждый символ, отличный от звездочки.

Как добавить данные в начало файла (написать программу)

Заранее спасибо!

Последний раз редактировалось samoel; 15.02.2009 в 00:47
samoel вне форума   Ответить с цитированием

Старый 15.02.2009, 00:42
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Отправлю вам этот список, по ссылкам содержаться аналогичные топики

Три задачи в Паскале
Три задачи на Паскале
Как посчитать количество цифр 5 в числе?
Задачи на Паскале
Три задачи на Паскале

Старый 15.02.2009, 07:23   #2 (permalink)
ummasha
Member
 
Аватар для ummasha
 
Регистрация: 24.12.2008
Сообщений: 419
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1311
По умолчанию

Вот ответ на первый вопрос:
Var n,m,p,k:integer;
Begin
write('n=');read(n);
m:=n;k:=0;
while m<>0 do begin
p:=m mod 10;
K:=K+1;
m:=m div 10;
end;
writeln('k=',k);
end.
ummasha вне форума   Ответить с цитированием
Старый 15.02.2009, 09:03   #3 (permalink)
Pirxus
Новичок
 
Регистрация: 15.02.2009
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

еще вариант считывать число в текстовую переменную и тупо посчитать количество символов) гораздо оперативнее на больших числах будет... хотя с современными процами это не прочухать)
Pirxus вне форума   Ответить с цитированием
Старый 15.02.2009, 11:41   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от samoel Посмотреть сообщение
Помогите решить задачи пожалуйста..

Составить программу, которая по данному числу (1-12) выводит название соответствующего ему месяца.
Const
Year:ARRAY[1..12] of STRING=('January', 'February', 'March', 'April', 'May',
'June', 'July', 'August', 'September', 'October', 'November', 'December');
VAR
i:BYTE;
BEGIN
Write('Number = '); ReadLn(i);
Writeln(Year[i]);
ReadLn;
END.

Цитата:
Пусть даны целое число N, символы s1, s2, …, sn. Преобразуйте последовательность s1, s2, …, sn, удалив каждый символ звездочки (*) и повторив каждый символ, отличный от звездочки.
Const N= ; {enter the number}
VAR
St1:ARRAY [1..N] of CHAR;
St2:ARRAY [1..N*2] of CHAR;
i,j,M:WORD;
BEGIN
FOR i:=1 TO N DO READ(St1[i]);
j:=1;
M:=0;
FOR i:=1 TO N DO
IF St1[i]<>'*' THEN
BEGIN
St2[j]:=St1[i];
St2[j+1]:=St1[i];
j:=j+2;
M:=M+2;
END;
FOR j:=1 TO M DO
WRITE(St2[j],' ');
ReadLn;
END.

Цитата:
Как добавить данные в начало файла (написать программу)
VAR
f,f1:TEXT;
S:STRING;
BEGIN
Assign(f1, '{enter the way to NEW file and its name, e.g. 'C:\file2'}');
ReWrite(f1);
WriteLn(f1, 'Long ago there were three pigs');
Assign(f, '{enter the way to OLD file and its name, e.g. 'C:\file1'}');
ReSet(f);
REPEAT
ReadLn(f,S);
WriteLn(f1,S);
UNTIL EoF(f);
Close(f);
Close(f1);
END.
Vladimir_S вне форума   Ответить с цитированием
Старый 15.02.2009, 15:33   #5 (permalink)
samoel
Новичок
 
Регистрация: 15.02.2009
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо большое! спасли меня.
samoel вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 15.02.2009, 18:51   #6 (permalink)
ummasha
Member
 
Аватар для ummasha
 
Регистрация: 24.12.2008
Сообщений: 419
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1311
По умолчанию

Vladimir_S, по-моему, в задаче

Цитата:
Сообщение от samoel Посмотреть сообщение
Пусть даны целое число N, символы s1, s2, …, sn. Преобразуйте последовательность s1, s2, …, sn, удалив каждый символ звездочки (*) и повторив каждый символ, отличный от звездочки.
тип переменных i и j - integer.
ummasha вне форума   Ответить с цитированием
Старый 15.02.2009, 20:19   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от ummasha Посмотреть сообщение
Vladimir_S, по-моему, в задаче
Цитата:
Пусть даны целое число N, символы s1, s2, …, sn. Преобразуйте последовательность s1, s2, …, sn, удалив каждый символ звездочки (*) и повторив каждый символ, отличный от звездочки.
тип переменных i и j - integer.
Ну да, Integer. А у меня как? Word? Так это просто разновидность. Вообще в Турбопаскале есть несколько целых типов:

1. ShortInt. 8-битное знаковое. Диапазон -128..+127
2. Integer. 16-битное знаковое. Диапазон -32768..+32767
3. LongInt. 32-битное знаковое. Диапазон -2147483648..+2147483647
4. Byte. 8-битное беззнаковое. Диапазон 0..+255
5. Word. 16-битное беззнаковое. Диапазон 0..+65535

Поскольку в данной задаче i и j не могут принимать отрицательных значений, я и употребил тип Word. А можно было и Integer.
Vladimir_S вне форума   Ответить с цитированием
Старый 15.02.2009, 20:22   #8 (permalink)
ummasha
Member
 
Аватар для ummasha
 
Регистрация: 24.12.2008
Сообщений: 419
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1311
По умолчанию

Vladimir_S, мой Паскаль потребовал заменить тип переменных i и j на integer, по другому выходила ошибка(
ummasha вне форума   Ответить с цитированием
Старый 15.02.2009, 20:38   #9 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от ummasha Посмотреть сообщение
Vladimir_S, мой Паскаль потребовал заменить тип переменных i и j на integer, по другому выходила ошибка(
Интересно. А что, он вообще кроме Integer целых типов не понимает? ЧуднО! Или там такое ограничение на переменные цикла? Сейчас проверил - у меня не ругается.

Меня вообще-то другое беспокоит. В задаче про ввод данных в начало файла я заложил вставку фразы про трех поросят. Интересно, Samoel понимает, что это просто для примера? А то ведь конфуз выйдет, и я окажусь виноват .
Vladimir_S вне форума   Ответить с цитированием
Старый 15.02.2009, 20:43   #10 (permalink)
ummasha
Member
 
Аватар для ummasha
 
Регистрация: 24.12.2008
Сообщений: 419
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1311
По умолчанию

Vladimir_S, мой Паскаль пишет следующее:
ОШИБКА: переменная цикла For должна иметь тип Integer, Char, Byte, интервальный или перечисляемый(((
ummasha вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 12:17.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.