Перейти к содержанию

Задачи на Pascal/Delphi (РЕШЕНИЕ)


Рекомендуемые сообщения

PapiruS

Мне, например, нихрена не понятна задача,

типа так что-ли:

var

s = '12345678910111213141516171819';

begin

readln(k);

for i := 1 to Length(s) do if i = k then writeln(s);

фигня какая-то

Ссылка на комментарий

bayarookie, ему нужен "другое решение" нежели то что я давал ему:


function dec_cnt(t:integer):integer;
var i:integer;
begin
i:=1;
while (t>=10) do
begin
t:=t div 10;
inc(i);
end;
result:=i;
end;

function n_dec(t,i:integer):integer;
var
j:integer;
begin
j:=dec_cnt(t)+1-i;
while (j>1) do
begin
t:=t div 10;
dec(j);
end;
result:=t mod 10;
end;

var
i,k:integer;

begin
readln(k);
i:=1;
while (k>dec_cnt(i)) do
begin
k:=k-dec_cnt(i);
inc(i);
end;
writeln('Result = ',n_dec(i,k));
end.

Ссылка на комментарий

bayarookie

последовательность эта бесконечная, в ней выписаны подряд все натуральные числа:123456789...20212223...30313233...4142...............100101102103...1000100110021003............................... 1000000....

она не вводитися с клавиатуры, а просто задана мысленно))) Нужно выдать к-ую цифру этой посл-ти, где к-вводится с клавы

И задача эта на тему циклы не строки и не масивы и не процедуры и ф-ии.

плз решите

Добавлено спустя 2 минуты 27 секунд:

канешна с помощью массивов или строк она решается в одну строку))) но мне задали ее решить на тему циклические алгоритмы.

Ссылка на комментарий

PapiruS

а как мысленно ввести в программу бесконечную последовательность из чисел?

И вообще, правильно сформулированный вопрос - половина ответа.

Ссылка на комментарий

bayarookie

ничего вводить не надо.Последовательность уже дана,вводится тока число k, нужно вывести на экран k-ую цифру бесконечной последовательности состоящей из подряд выписанных натуральных чисел:

123456789101112131415.....100101102103......100000.........
допустим k=15 значит на экране должно быть 2, если k=7 значит 7.
Ссылка на комментарий

Дан номер года. Найти число дней в этом году . В современном календаре каждый год номер которого делятся на 100 и не делится на 400. Например 1900 год не высокосный а 2000 год высокосный!

Другая задача!

Составте программу проверяющию верно ли утверждение что введеное вам и целое число делится без остатка на 3

Ссылка на комментарий

PapiruS, каких еще массивов и строк... тут они совершенно неуместны. так и быть без функций тебе переделал (а вообще сам хоть бы немного пробовал понять, что и как):


var
i,k:integer;
i_dec_cnt,i_n_dec:integer;
f_i,f_j,f_t,result:integer;
begin
readln(k);
i:=1;
i_dec_cnt:=1;
//while (k>dec_cnt(i)) do
while (k>i_dec_cnt) do
begin
// k:=k-dec_cnt(i);
k:=k-i_dec_cnt;
inc(i);
// from function dec_cnt
f_i:=1;f_t:=i;
while (f_t>=10) do
begin
f_t:=f_t div 10;
inc(f_i);
end;
i_dec_cnt:=f_i;
// end function
end;
//result
f_j:=i_dec_cnt+1-k;
while (f_j>1) do
begin
i:=i div 10;
dec(f_j);
end;
result:=i mod 10;
//end result
writeln('Result = ',result);
end.

Ссылка на комментарий

PapiruS

а как из мысли выцепить k-ую цифру?

ght

readln(y);

if (y / 4) = (y div 4) then

writeln(366)

else

writeln(365)

а 100 и 400 - это откуда?

readln(x);

if (x / 3) = (x div 3) then

writeln('делится на 3')

else

Ссылка на комментарий

Дана действительная матрица размера nxm; организовать однонаправленный список строк матрицы, упорядоченных:

а) по неубыванию значений первых элементов строк.

б) по невозрастанию значений наибольших элементов строк.

Ух, сложнятина! :wall: Не понимаю! Обьясните пожалуйста!

Ссылка на комментарий

насколько я понял нужно тупо создать процедурку формирования строки в матрице по одноноправленному списку, перекидываем ссылку на возрастающий первый элемент следующей строки.

пример:

1 2 2 3 || 1 2 2 3

4 5 6 7 || 2 3 4 6

2 3 4 6 || 4 5 6 7

Ссылка на комментарий

Напишите, пожалуйста, на Паскале с помощью графа!

как построить график y=A*exp(x){условие задачи}

НУ я ПОСМ, что exp(x)=e^x

У меня вылазит ошибка invalid qualifier

x3 как делать! срочно! plz :help:

Ссылка на комментарий

насколько я понял нужно тупо создать процедурку формирования строки в матрице по одноноправленному списку, перекидываем ссылку на возрастающий первый элемент следующей строки.

пример:

1 2 2 3 || 1 2 2 3

4 5 6 7 || 2 3 4 6

2 3 4 6 || 4 5 6 7

A какие операторы использовать надо??? :think: Не знаю как делать!!! *29 А надо! *89

Ссылка на комментарий

new()- выделение памяти в куче

dispose()-освобождение памяти

структура однонаправленной очереди, если не изменяет память:

din=^zap;

zap=record

x:integer;//контент

next:din;//ссылка на следующий элемент

end;

APEXER

эээ дык вроде есть же функция exp(x) значение функции вещественное, входящая переменная вещественная..... зачем тебе e в степени x :)

Ссылка на комментарий

program graficfunction;

uses graph;

var

grdriver:integer;

grmode:integer;

errcode:integer;

x,y,x1,y1,cx,cy,xg:integer;

begin

grdriver:=detect;

initgraph(grdriver, grmode,'');

errcode:=graphresult;

if errcode=grok then

begin

cx:=round(getmaxx/2);

cy:=round(getmaxy/2);

line(0,cy,getmaxx,cy);

line(cx,0,cx,getmaxy);

for x:=-xg to xg do

begin

x1:=x+cx;

y:=exp(x);

y1:=getmaxy-round((y/20+cy));

circle(x1,y1,2)

end;

settextstyle(0,0,2);

outtextxy(180,350,'rpaqpuk f y=exp(x)');

readln;

closegraph;

end

else

writeln('graphics error:', grapherrormsg(errcode));

end.

Что здесь неправильно? Что исправить надо? Добавить? :rolleyes:

Ссылка на комментарий
PapiruS, каких еще массивов и строк... тут они совершенно неуместны. так и быть без функций тебе переделал (а вообще сам хоть бы немного пробовал понять, что и как):


var
i,k:integer;
i_dec_cnt,i_n_dec:integer;
f_i,f_j,f_t,result:integer;
begin
readln(k);
i:=1;
i_dec_cnt:=1;
//while (k>dec_cnt(i)) do
while (k>i_dec_cnt) do
begin
// k:=k-dec_cnt(i);
k:=k-i_dec_cnt;
inc(i);
// from function dec_cnt
f_i:=1;f_t:=i;
while (f_t>=10) do
begin
f_t:=f_t div 10;
inc(f_i);
end;
i_dec_cnt:=f_i;
// end function
end;
//result
f_j:=i_dec_cnt+1-k;
while (f_j>1) do
begin
i:=i div 10;
dec(f_j);
end;
result:=i mod 10;
//end result
writeln('Result = ',result);
end.

можешь мне объяснить ход решения задачи плз?По какому правилу мы нашли эту цифру. А то куча переменных и трудно разобраться.

Ссылка на комментарий

Создать базу данных следующей структуры:ФИО, марка автомобиля, цвет, номер. составить форму для просмотра полной информации об автомобилях,

предусмотрев в ней команды для перехода на следующую\предыдущую запись, перехода на начальную\конечную запись, добавления\удаления записи,

редактирования текущей записи.

определить:

-сведения об автолюбителях, имеющих автомобиль заданной марки и цвета

-марки автомобилей, номер которых начинается с заданной группы символов

-количество автомтбилей белого цвета

-произвести сортировку по одному, двум или трем полям

-вывести итоговые данные на дисплей и в текстовый файл

я сам вкраток сделал помогите доделать плиз или подкиньте ссылку где примерно такая же программа

program Kursovaya1;

uses crt;

const n=3; k=0;

type

rec=record

FIO:string [30];

marka:string [10];

colour:string [13];

number:integer;

end;

mas=array [1..n] of rec;

var

i,flag,kr:byte;

f:file of rec;

mashina:mas;

auto:rec;

procedure vvod;

begin

rewrite (f);

for i:=1 to n do

begin

textcolor(15); write ('FIO vladelca: '); readln (auto.FIO);

textcolor(2); write (' marka avtomobilia: '); readln (auto.marka);

textcolor(14); write (' cvet mashini: '); readln (auto.colour);

textcolor(13); write (' nomer mashini: '); readln (auto.number);

textcolor(4); write (f,auto);

end;

close (f);

end;

procedure vivod;

begin

reset (f);

for i:=1 to n do

begin

read (f,auto); writeln (auto.FIO:30,

auto.marka:10,

auto.colour:13,

auto.number:8 );

end;

close (f);

readkey;

end;

begin

clrscr;

assign(f,'automobile.dat');

flag:=0;

textbackground(1);

clrscr;

window(10,5,70,20);

textbackground(0);

clrscr;

repeat

writeln ('1. vvod');

writeln ('2. vivod');

writeln ('0. vihod');

write ('vvedite nomer: ');

readln (kr);

case kr of

1:vvod;

2:vivod;

0:break;

end;

flag:=1;

until flag=0;

end.

Ссылка на комментарий

Напишите пожалуйста программы по заданным условям

Первая задача выглядит так:

Задан массив действительных чисел. Определить , сколько раз меняется знак в данной последовательности чисел, запомнить номера позиций , в которых происходит смена знака.

Вторая задача так:

Вычесть из элементов нечетных столбцов значения элементов четных столбцов и вывести на печать 4 последних столба.

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...