• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Найти количество цифр в числе в паскале и еще 3 задачи.

  • Автор темы Автор темы samoel
  • Дата начала Дата начала

samoel

Ученик
Регистрация
14 Фев 2009
Сообщения
3
Реакции
0
Баллы
0
Найти количество цифр в числе в паскале и еще 3 задачи.

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

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

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

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

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

Заранее спасибо!
 
Последнее редактирование:
Вот ответ на первый вопрос:
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.
 
еще вариант считывать число в текстовую переменную и тупо посчитать количество символов) гораздо оперативнее на больших числах будет... хотя с современными процами это не прочухать)
 
Помогите решить задачи пожалуйста..

Составить программу, которая по данному числу (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);
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);
j:=1;
M:=0;
FOR i:=1 TO N DO
IF St1<>'*' THEN
BEGIN
St2[j]:=St1;
St2[j+1]:=St1;
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, по-моему, в задаче

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

тип переменных i и j - integer.
 
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, мой Паскаль потребовал заменить тип переменных i и j на integer, по другому выходила ошибка(
 
Vladimir_S, мой Паскаль потребовал заменить тип переменных i и j на integer, по другому выходила ошибка(

Интересно. А что, он вообще кроме Integer целых типов не понимает? ЧуднО! Или там такое ограничение на переменные цикла? Сейчас проверил - у меня не ругается.

Меня вообще-то другое беспокоит. В задаче про ввод данных в начало файла я заложил вставку фразы про трех поросят. Интересно, Samoel понимает, что это просто для примера? А то ведь конфуз выйдет, и я окажусь виноват :o .
 
Vladimir_S, мой Паскаль пишет следующее:
ОШИБКА: переменная цикла For должна иметь тип Integer, Char, Byte, интервальный или перечисляемый(((
 
Vladimir_S, мой Паскаль пишет следующее:
ОШИБКА: переменная цикла For должна иметь тип Integer, Char, Byte, интервальный или перечисляемый(((

Ну что же - уж такой он у Вас. Паскалей много на белом свете. Хотя странно это - ну зачем такое ограничение? А вообще, как я уже отмечал - ну хочет он Integer, так пусть будет Integer, раз уж такой капризный.
 
Интересно. А что, он вообще кроме Integer целых типов не понимает? ЧуднО! Или там такое ограничение на переменные цикла? Сейчас проверил - у меня не ругается.

Меня вообще-то другое беспокоит. В задаче про ввод данных в начало файла я заложил вставку фразы про трех поросят. Интересно, Samoel понимает, что это просто для примера? А то ведь конфуз выйдет, и я окажусь виноват :o .

да да заметил :))
 
Я сейчас использую АВС Паскаль. В аннотации написано, что "система Pascal ABC основана на языке Delphi Pascal". Еще есть Turbo Pascal, но он тоже выдает странные ошибки(((
 
Я сейчас использую АВС Паскаль. В аннотации написано, что "система Pascal ABC основана на языке Delphi Pascal". Еще есть Turbo Pascal, но он тоже выдает странные ошибки(((

С Pascal ABC не знаком. Как и с Delphi Pascal. Т.е. на Delphi-то я иногда работаю, это, конечно, вроде тоже Паскаль, да не совсем Паскаль. А вот с гибридами не встречался.
 
У меня небольшой вопрос по следующей задаче:
Пусть даны целое число N, символы s1, s2, …, sn. Преобразуйте последовательность s1, s2, …, sn, удалив каждый символ звездочки (*) и повторив каждый символ, отличный от звездочки.
Я не очень поняла, что должна делать программа. У меня она выводит следущее (при N=7):
1
2
3
4
5
6
7
1 1 2 2 3 3 4 4 5 5 6 6 7 7
 
У меня небольшой вопрос по следующей задаче:
Пусть даны целое число N, символы s1, s2, …, sn. Преобразуйте последовательность s1, s2, …, sn, удалив каждый символ звездочки (*) и повторив каждый символ, отличный от звездочки.
Я не очень поняла, что должна делать программа. У меня она выводит следущее (при N=7):
1
2
3
4
5
6
7
1 1 2 2 3 3 4 4 5 5 6 6 7 7

Ну да, так и есть. Попробуйте ввести не только цифры, но и другие символы, в том числе '*'. Тогда в выходных данных каждый символ, кроме звездочек, будет удвоен (я так понял значение задания "повторить"), а звездочки исчезнут вовсе. Или я что-то не так понял в задании?
 
Я попробовала ввести * и у меня все получилось)))
1
2
3
*
5
6
7
1 1 2 2 3 3 5 5 6 6 7 7

Просто я не сразу поняла смысл задачи)))
 
Последнее редактирование:
Назад
Сверху