مسأله شماره ۴۶:
برنامه ای بنویسید که یک متن دریافت کرده، سپس با استفاده از یک رمز عبور که از ورودی میگیرد، متن را با یک روش ابداعی (منحصر به برنامه شما) رمزنگاری کرده و در خروجی چاپ کند.
همچنین در حالت معکوس، اگر متن رمزنگاری شده به همراه رمز عبور به برنامه ارسال شود، متن اولیه در خروجی چاپ شود.
متن اولیه را با حرف P به معنای Plain Text و متن رمزنگاری شده را با حرف E به معنای Encrypted Text شناسایی کنید. فرمت ورودی به صورت زیر است
P:Password:Plain Text
E: Password:Encrypted Text
رمز عبور شامل کاراکتر : نیست ولی ورودی میتواند شامل : باشد
Input:
P:UnfoldTheUniverse340:James Webb will change our understanding of universe
E:UnfoldTheUniverse340:xghuudsrnSakigbnmhfxd346Saqjibcdsby32vgz6iommkud
Ouput:
Encrypted Text is "xghuudsrnSakigbnmhfxd346Saqjibcdsby32vgz6iommkud"
Plain text is "James Webb will change our understanding of universe"
#problem #text_processing #encryption
برنامه ای بنویسید که یک متن دریافت کرده، سپس با استفاده از یک رمز عبور که از ورودی میگیرد، متن را با یک روش ابداعی (منحصر به برنامه شما) رمزنگاری کرده و در خروجی چاپ کند.
همچنین در حالت معکوس، اگر متن رمزنگاری شده به همراه رمز عبور به برنامه ارسال شود، متن اولیه در خروجی چاپ شود.
متن اولیه را با حرف P به معنای Plain Text و متن رمزنگاری شده را با حرف E به معنای Encrypted Text شناسایی کنید. فرمت ورودی به صورت زیر است
P:Password:Plain Text
E: Password:Encrypted Text
رمز عبور شامل کاراکتر : نیست ولی ورودی میتواند شامل : باشد
Input:
P:UnfoldTheUniverse340:James Webb will change our understanding of universe
E:UnfoldTheUniverse340:xghuudsrnSakigbnmhfxd346Saqjibcdsby32vgz6iommkud
Ouput:
Encrypted Text is "xghuudsrnSakigbnmhfxd346Saqjibcdsby32vgz6iommkud"
Plain text is "James Webb will change our understanding of universe"
#problem #text_processing #encryption
مسأله شماره ۴۷:
برنامه ای بنویسید که یک عدد از ورودی دریافت کرده و تعداد اعداد اول کوچکتر از آن را محاسبه کند (فقط تعداد اعداد اول نه خود اعداد اول)
نکته مرتبط:
مقدار تابع فی اویلر برای هر عدد اول p برابر با p - 1 هست.
https://en.wikipedia.org/wiki/Euler%27s_totient_function
Input:
10
1000000
1000000000
100000000000
Output:
4
78498
50847534
4118054813
#problem #prime
برنامه ای بنویسید که یک عدد از ورودی دریافت کرده و تعداد اعداد اول کوچکتر از آن را محاسبه کند (فقط تعداد اعداد اول نه خود اعداد اول)
نکته مرتبط:
مقدار تابع فی اویلر برای هر عدد اول p برابر با p - 1 هست.
https://en.wikipedia.org/wiki/Euler%27s_totient_function
Input:
10
1000000
1000000000
100000000000
Output:
4
78498
50847534
4118054813
#problem #prime
مسأله شماره ۴۸:
برنامه ای بنویسید که آدرس یک پوشه بر روی هارد دیسک دریافت کرده سپس ساختار درختی تمام فایل ها و پوشه های زیر آن آدرس را تشکیل داده و آمارهای زیر را محاسبه کند:
- ۵ پسوند فایل با بیشترین تکرار در سرتاسر پوشه ها (با ذکر تعداد تکرار)
- ۵ پوشه با بیشترین سایز (سایز هر پوشه معادل مجموع سایز تمام پوشه ها و فایل های زیر آن است)
- ۵ فایل با بیشترین تکرار (فایل تکراری را با بررسی Hash محتوای آن شناسایی کنید, نه با نام فایل). برای هر مورد، آدرس کامل تمام فایل های تکراری در خروجی چاپ شود.
- ۵ مسیر (شامل فایل و پوشه) با بیشترین عمق در ساختار درختی (در صورتی که بیشتر از یک مورد وجود دارد، بر اساس نام صعودی مرتب کنید و اولین مسیر را برگردانید)
Input:
d:\myfolder
Output:
Top 5 file extensions:
JPG 243
Exe 120
MP3 18
PNG 5
PDF 2
Top 5 largest folders
d:\myfolder\work 2.6GB
d:\myfolder\1\best 1.1GB
d:\myfolder\2\books\new 620MB
d:\myfolder\music 130MB
d:\myfolder\booknew 44MB
Top 5 most duplicated files
d:\myfolder\1\photo.png
Duplicates: (... duplicated files paths)
d:\myfolder\books\120.pdf
Duplicates: (... duplicated files paths)
d:\myfolder\1\78\photo.png
Duplicates: (... duplicated files paths)
d:\myfolder\photo\new.jpg
Duplicates: (... duplicated files paths)
d:\myfolder\120\photo.png
Duplicates: (... duplicated files paths)
Top 5 deepest paths
d:\myfoler\120\43\work\news\reading
d\myfolder\root\word\books\life.pdf
d:\myfolder\names\books\nike.jpg
d:\myfolder\root\word
d:\myfolder\names
#problem #filesystem
برنامه ای بنویسید که آدرس یک پوشه بر روی هارد دیسک دریافت کرده سپس ساختار درختی تمام فایل ها و پوشه های زیر آن آدرس را تشکیل داده و آمارهای زیر را محاسبه کند:
- ۵ پسوند فایل با بیشترین تکرار در سرتاسر پوشه ها (با ذکر تعداد تکرار)
- ۵ پوشه با بیشترین سایز (سایز هر پوشه معادل مجموع سایز تمام پوشه ها و فایل های زیر آن است)
- ۵ فایل با بیشترین تکرار (فایل تکراری را با بررسی Hash محتوای آن شناسایی کنید, نه با نام فایل). برای هر مورد، آدرس کامل تمام فایل های تکراری در خروجی چاپ شود.
- ۵ مسیر (شامل فایل و پوشه) با بیشترین عمق در ساختار درختی (در صورتی که بیشتر از یک مورد وجود دارد، بر اساس نام صعودی مرتب کنید و اولین مسیر را برگردانید)
Input:
d:\myfolder
Output:
Top 5 file extensions:
JPG 243
Exe 120
MP3 18
PNG 5
PDF 2
Top 5 largest folders
d:\myfolder\work 2.6GB
d:\myfolder\1\best 1.1GB
d:\myfolder\2\books\new 620MB
d:\myfolder\music 130MB
d:\myfolder\booknew 44MB
Top 5 most duplicated files
d:\myfolder\1\photo.png
Duplicates: (... duplicated files paths)
d:\myfolder\books\120.pdf
Duplicates: (... duplicated files paths)
d:\myfolder\1\78\photo.png
Duplicates: (... duplicated files paths)
d:\myfolder\photo\new.jpg
Duplicates: (... duplicated files paths)
d:\myfolder\120\photo.png
Duplicates: (... duplicated files paths)
Top 5 deepest paths
d:\myfoler\120\43\work\news\reading
d\myfolder\root\word\books\life.pdf
d:\myfolder\names\books\nike.jpg
d:\myfolder\root\word
d:\myfolder\names
#problem #filesystem
مسأله شماره ۴۹:
فرض کنید شما در یکی از جهان های هستی زندگی می کنید که مشخصات زیر را دارد.
- ابعادی به عرض w و ارتفاع h
- دو بعدی
- فوتون های خارجی در این جهان رفتار خاصی دارند، آنگونه که وقتی به ستاره ای برخورد می کنند به سمت نزدیک ترین ستاره بعدی منحرف می شوند.
هر کدام از ستاره های این جهان، دقیقا بر روی یکی از نقاط این صفحه که با عدد صحیح مشخص می شوند قرار دارند. شما نیز در موقعیت x و y حضور دارید که لیزر خود را روشن می کنید و به سمت ستاره ای با مختصات a و b نشانه میگیرید.
برنامه ای بنویسید که مسیر حرکت فوتون های خارج شده از لیزر شما را محاسبه کند. مسیر شامل مختصات ستاره هایی هست که لیزر به آنها برخورد می کند. همچنین زمان دقیق برخورد را نیز محاسبه کنید. زمان صفر، لحظه روشن شدن لیزر است.
ورودی شامل w و h در خط اول، سپس عدد n شامل تعداد ستاره هاست
سپس n خط شامل نام ستاره و مختصات x و y هر کدام است.
ورودی بعدی x و y موقعیت شماست و در خط آخر نام ستاره اولین هدف شما.
هر واحد فاصله در مختصات این جهان, یک AU یا واحد نجومی است. زمان را بر اساس ثانیه (به صورت اعشاری) نشان دهید
Input:
1000 1000
5
Luna 500 230
Virgo 260 450
Altair 120 890
Miram 530 20
Cyg 1000 650
200 300
Altair
Output:
+680 Altair
+1569.34 Miram
+2178.45 Cyg
+3409.87 Virgo
+4575.21 Luna
(خروجی نمونه فقط برای نشان دادن فرمت خروجی نوشته شده و صحیح نیست)
#problem #astronomy #light
فرض کنید شما در یکی از جهان های هستی زندگی می کنید که مشخصات زیر را دارد.
- ابعادی به عرض w و ارتفاع h
- دو بعدی
- فوتون های خارجی در این جهان رفتار خاصی دارند، آنگونه که وقتی به ستاره ای برخورد می کنند به سمت نزدیک ترین ستاره بعدی منحرف می شوند.
هر کدام از ستاره های این جهان، دقیقا بر روی یکی از نقاط این صفحه که با عدد صحیح مشخص می شوند قرار دارند. شما نیز در موقعیت x و y حضور دارید که لیزر خود را روشن می کنید و به سمت ستاره ای با مختصات a و b نشانه میگیرید.
برنامه ای بنویسید که مسیر حرکت فوتون های خارج شده از لیزر شما را محاسبه کند. مسیر شامل مختصات ستاره هایی هست که لیزر به آنها برخورد می کند. همچنین زمان دقیق برخورد را نیز محاسبه کنید. زمان صفر، لحظه روشن شدن لیزر است.
ورودی شامل w و h در خط اول، سپس عدد n شامل تعداد ستاره هاست
سپس n خط شامل نام ستاره و مختصات x و y هر کدام است.
ورودی بعدی x و y موقعیت شماست و در خط آخر نام ستاره اولین هدف شما.
هر واحد فاصله در مختصات این جهان, یک AU یا واحد نجومی است. زمان را بر اساس ثانیه (به صورت اعشاری) نشان دهید
Input:
1000 1000
5
Luna 500 230
Virgo 260 450
Altair 120 890
Miram 530 20
Cyg 1000 650
200 300
Altair
Output:
+680 Altair
+1569.34 Miram
+2178.45 Cyg
+3409.87 Virgo
+4575.21 Luna
(خروجی نمونه فقط برای نشان دادن فرمت خروجی نوشته شده و صحیح نیست)
#problem #astronomy #light
مسأله شماره ۵۰:
برنامه ای بنویسید که یک مجموعه از اعداد دریافت کرده سپس عدد دیگری (n) را از ورودی بگیرد. به ازای هر مورد، یک ترکیب از بخشی از اعضای لیست تشکیل دهد که معادل n شود.
اولین ورودی یک عدد T هست و سپس 2T خط وارد می شود. اولین خط هر کیس، شامل مجموعه اعداد و دومین خط شامل عدد n می باشد. در صورت وجود جواب های متعدد، جوابی که کمترین تعداد اعداد را دارد را انتخاب کنید. در صورتی که چندین جواب با تعداد اعداد یکسان وجود داشت، هر کدام از جواب ها معتبر هستند.
همچنین هر عدد را فقط یکبار میتوانید در عبارت استفاده کنید.
Input:
3
10 2 66 7 9 4 6
50
1 22 5 12
121
2 67 3 4
140
Output:
50 = (66 / 2) + 7 + 10
121 = 12 + (22 * 5) - 1
140 = ((67 + 3) / 2) * 4
#problem
برنامه ای بنویسید که یک مجموعه از اعداد دریافت کرده سپس عدد دیگری (n) را از ورودی بگیرد. به ازای هر مورد، یک ترکیب از بخشی از اعضای لیست تشکیل دهد که معادل n شود.
اولین ورودی یک عدد T هست و سپس 2T خط وارد می شود. اولین خط هر کیس، شامل مجموعه اعداد و دومین خط شامل عدد n می باشد. در صورت وجود جواب های متعدد، جوابی که کمترین تعداد اعداد را دارد را انتخاب کنید. در صورتی که چندین جواب با تعداد اعداد یکسان وجود داشت، هر کدام از جواب ها معتبر هستند.
همچنین هر عدد را فقط یکبار میتوانید در عبارت استفاده کنید.
Input:
3
10 2 66 7 9 4 6
50
1 22 5 12
121
2 67 3 4
140
Output:
50 = (66 / 2) + 7 + 10
121 = 12 + (22 * 5) - 1
140 = ((67 + 3) / 2) * 4
#problem
مسأله شماره ۵۱:
برنامه ای بنویسید که یک عدد از ورودی دریافت کرده و تعیین کند اول هست یا مرکب. اگر عدد اول بود مشخصاتی همانند خروجی برای آن تولید کند. در صورتی که عدد مرکب بود کوچکترین عامل اول آن را تعیین کند.
پی شارپ یا p# به معنای Primorial یا حاصلضرب همه اعداد اول تا p هست.
برای توابعی که می نویسید زمان اجرا را هم اندازه بگیرید.
ماکزیمم ورودی: ۲۰ رقم
Input:
1000
Output:
#prime
برنامه ای بنویسید که یک عدد از ورودی دریافت کرده و تعیین کند اول هست یا مرکب. اگر عدد اول بود مشخصاتی همانند خروجی برای آن تولید کند. در صورتی که عدد مرکب بود کوچکترین عامل اول آن را تعیین کند.
پی شارپ یا p# به معنای Primorial یا حاصلضرب همه اعداد اول تا p هست.
برای توابعی که می نویسید زمان اجرا را هم اندازه بگیرید.
ماکزیمم ورودی: ۲۰ رقم
Input:
1000
7919
13517501
Output:
1000 is a composite number
Least prime factor of 1000 is 2
7919 is a prime numbber
7919 is 1000th prime number
7919# has 3393 decimal digits
13517501 is a prime number
13517501 is
880690th prime number
13517502 - 1 and 13517502 + 1 are twin prime numbers
#prime
مسأله شماره ۵۲:
شما قصد طراحی یک وب سایت گالری عکس را دارید که مشتریان شما بتوانند عکس های خود را که در اندازه های متفاوت هست در وب سایت آپلود کرده و مدیریت کنند.
در این برنامه قصد دارید نحوه چینش عکس ها را در یک باکس تعیین شده محاسبه کنید. چینش را به نحوی انجام دهید که کمترین فضای خالی ممکن در باکس قرار بگیرد و ارتفاع باکس حداقل باشد. همچنین امکان چرخش عکس ها وجود ندارد.
هر عکس یک ID عددی و ابعادی با عرض W و ارتفاع H دارد. اولین خط از ورودی عرض باکسی هست که باید تصاویر در آن قرار بگیرند. خط بعدی یک ورودی عددی N تعیین کننده تعداد کل عکس ها می باشد. سپس N خط شامل مشخصات هر عکس به صورت ID: W x H وارد می شود.
به ازای هر عکس, در خروجی شناسه عکس به همراه X و Y محل قرار گیری آن را در باکس اصلی مشخص کنید. گوشه سمت چپ بالا مختصات صفر و صفر دارد. X و Y هر عکس هم نقطه بالا سمت چپ هر عکس هست.
Input:
1000
6
1: 200 x 800
2: 300 x 200
3: 500 x 300
4: 300 x 700
5: 400 x 600
6: 300 x 100
Output:
1: 800 0
2: 0 700
3: 300 0
4: 0 0
5: 300 300
6: 700 800
#graphics #arrangment
شما قصد طراحی یک وب سایت گالری عکس را دارید که مشتریان شما بتوانند عکس های خود را که در اندازه های متفاوت هست در وب سایت آپلود کرده و مدیریت کنند.
در این برنامه قصد دارید نحوه چینش عکس ها را در یک باکس تعیین شده محاسبه کنید. چینش را به نحوی انجام دهید که کمترین فضای خالی ممکن در باکس قرار بگیرد و ارتفاع باکس حداقل باشد. همچنین امکان چرخش عکس ها وجود ندارد.
هر عکس یک ID عددی و ابعادی با عرض W و ارتفاع H دارد. اولین خط از ورودی عرض باکسی هست که باید تصاویر در آن قرار بگیرند. خط بعدی یک ورودی عددی N تعیین کننده تعداد کل عکس ها می باشد. سپس N خط شامل مشخصات هر عکس به صورت ID: W x H وارد می شود.
به ازای هر عکس, در خروجی شناسه عکس به همراه X و Y محل قرار گیری آن را در باکس اصلی مشخص کنید. گوشه سمت چپ بالا مختصات صفر و صفر دارد. X و Y هر عکس هم نقطه بالا سمت چپ هر عکس هست.
Input:
1000
6
1: 200 x 800
2: 300 x 200
3: 500 x 300
4: 300 x 700
5: 400 x 600
6: 300 x 100
Output:
1: 800 0
2: 0 700
3: 300 0
4: 0 0
5: 300 300
6: 700 800
#graphics #arrangment
مسأله شماره ۵۳:
برنامه ای بنویسید که آدرس یک فایل gpx بر روی دیسک را دریافت کرده و اطلاعات زیر را برای مسیر طی شده محاسبه کند:
مدت زمان حرکت
مسافت طی شده
میانگین سرعت
حداکثر سرعت
(از کتابخانه های آماده برای پردازش فایل و محاسبه اطلاعات استفاده نکنید)
فرمت GPX:
https://en.wikipedia.org/wiki/GPS_Exchange_Format
Input:
C:\data\my-ride.gpx
Ouput:
Time: 3:47:58
Distance: 103.79 km
Avg Speed: 27.3 km/h
Max Speed: 37.5 km/h
#location #tracking
برنامه ای بنویسید که آدرس یک فایل gpx بر روی دیسک را دریافت کرده و اطلاعات زیر را برای مسیر طی شده محاسبه کند:
مدت زمان حرکت
مسافت طی شده
میانگین سرعت
حداکثر سرعت
(از کتابخانه های آماده برای پردازش فایل و محاسبه اطلاعات استفاده نکنید)
فرمت GPX:
https://en.wikipedia.org/wiki/GPS_Exchange_Format
Input:
C:\data\my-ride.gpx
Ouput:
Time: 3:47:58
Distance: 103.79 km
Avg Speed: 27.3 km/h
Max Speed: 37.5 km/h
#location #tracking
Wikipedia
GPS Exchange Format
XML based open file format to share GNSS data
مسأله شماره ۵۴:
برنامه ای بنویسید که تعداد ارقام اعداد ورودی را محاسبه کند.
ورودی میتواند به فرمت فاکتوریل , پریموریال و یا حاصلضرب هر ترکیبی از اعداد توان دار باشد. ورودی های زیر نمونه هستند ولی ورودی از ۱ میلیارد فاکتور بزرگتر نخواهد بود.
Input:
7919#
100000#
1000000#
10000000#
100000000#
2^127
5^1000 * 7^1000
1000!
1000000!
10000000!
100000000!
1000000000!
Ouput:
7919# has 3393 digits
100000# has 43293 digits
1000000# has 433637 digits
10000000# has 4340852 digits
100000000# has 43424120 digits
2^127 has 39 digits
5^1000 x 7^1000 has 1545 digits
1000! has 2568 digits
1000000! has 5565709 digits
10000000! has 65657060 digits
100000000! has 756570557 digits
1000000000! has 8565705523 digits
#mathematics
برنامه ای بنویسید که تعداد ارقام اعداد ورودی را محاسبه کند.
ورودی میتواند به فرمت فاکتوریل , پریموریال و یا حاصلضرب هر ترکیبی از اعداد توان دار باشد. ورودی های زیر نمونه هستند ولی ورودی از ۱ میلیارد فاکتور بزرگتر نخواهد بود.
Input:
7919#
100000#
1000000#
10000000#
100000000#
2^127
5^1000 * 7^1000
1000!
1000000!
10000000!
100000000!
1000000000!
Ouput:
7919# has 3393 digits
100000# has 43293 digits
1000000# has 433637 digits
10000000# has 4340852 digits
100000000# has 43424120 digits
2^127 has 39 digits
5^1000 x 7^1000 has 1545 digits
1000! has 2568 digits
1000000! has 5565709 digits
10000000! has 65657060 digits
100000000! has 756570557 digits
1000000000! has 8565705523 digits
#mathematics
مسأله شماره ۵۵:
با استفاده از مفاهیم شی گرایی، برای بازی با مشخصات زیر یک موتور اجرایی طراحی کنید.
موضوع: Multi Player First Person Shooter
کلاس ها:
Player
GameEngine
خواص کلاس Player:
Name: string
Blood: int (0-100)
Position (x,y): (int, int)
رفتارهای کلاس Player:
Shoot
ورودی های Shoot
x, y
خواص کلاس GameEngine:
World Size (Width x Height): (int,int)
Players Count: int
رفتارهای کلاس GameEngine:
Start
ورودی برنامه سه عدد شامل طول و عرض دنیای بازی و تعداد بازیکن های بازی است.
سپس کاربر کلمه START را تایپ می کند که منجر به فراخوانی تابع Start بر روی موتور بازی باید بشود.
در فرایند شروع بازی، موتور بازی به تعدادی که کاربر تعیین کرده بازیکن تصادفی تولید می کند و در موقعیت های تصادفی در دنیای بازی قرار می دهد. سپس یکی از بازیکن ها را به صورت تصادفی انتخاب می کند و به کاربر تخصیص می دهد.
پس از آن برنامه در هر خط، از کاربر یک x و y دریافت می کند که مختصات محل هدف گیری شده توسط کاربر هست. در صورتی که در محدوده هدف گیری شده بازیکنی وجود داشته باشد مورد هدف قرار گرفته و ۱۰ واحد از Blood آن بازیکن کسر می شود و 5 واحد به Blood شلیک کننده اضافه می کند. همچنین هر شلیک 3 واحد از Blood شلیک کننده مصرف می کند. بدین صورت که شلیک موفق باعث افزایش ۲ واحدی Blood بازیکن کاربر می شود و شلیک ناموفق ۳ واحد از Blood وی کسر می کند.
محدوده شلیک موفق هم به اندازه یک واحد در اطراف مختصات بازیکن هدف است. برای مثال اگر بازیکنی در مختصات ۳ و ۸ باشد، شلیک به مختصات ۳ و ۷ یک شلیک موفق است که به هدف برخورد کرده است.
اگر کاربر کلمه STATUS را در ورودی وارد کند، برنامه باید وضعیت تمام بازیکنان زنده را شامل نام، مختصات و میزان Blood باقی مانده را در خروجی چاپ کند.
پایان برنامه با ورودی END است.
(در صورتی که خروجی برنامه را با پکیج Turtle 🐢 به صورت گرافیکی نمایش دهید عملا یک بازی کامل ساخته اید)
#game #oop
با استفاده از مفاهیم شی گرایی، برای بازی با مشخصات زیر یک موتور اجرایی طراحی کنید.
موضوع: Multi Player First Person Shooter
کلاس ها:
Player
GameEngine
خواص کلاس Player:
Name: string
Blood: int (0-100)
Position (x,y): (int, int)
رفتارهای کلاس Player:
Shoot
ورودی های Shoot
x, y
خواص کلاس GameEngine:
World Size (Width x Height): (int,int)
Players Count: int
رفتارهای کلاس GameEngine:
Start
ورودی برنامه سه عدد شامل طول و عرض دنیای بازی و تعداد بازیکن های بازی است.
سپس کاربر کلمه START را تایپ می کند که منجر به فراخوانی تابع Start بر روی موتور بازی باید بشود.
در فرایند شروع بازی، موتور بازی به تعدادی که کاربر تعیین کرده بازیکن تصادفی تولید می کند و در موقعیت های تصادفی در دنیای بازی قرار می دهد. سپس یکی از بازیکن ها را به صورت تصادفی انتخاب می کند و به کاربر تخصیص می دهد.
پس از آن برنامه در هر خط، از کاربر یک x و y دریافت می کند که مختصات محل هدف گیری شده توسط کاربر هست. در صورتی که در محدوده هدف گیری شده بازیکنی وجود داشته باشد مورد هدف قرار گرفته و ۱۰ واحد از Blood آن بازیکن کسر می شود و 5 واحد به Blood شلیک کننده اضافه می کند. همچنین هر شلیک 3 واحد از Blood شلیک کننده مصرف می کند. بدین صورت که شلیک موفق باعث افزایش ۲ واحدی Blood بازیکن کاربر می شود و شلیک ناموفق ۳ واحد از Blood وی کسر می کند.
محدوده شلیک موفق هم به اندازه یک واحد در اطراف مختصات بازیکن هدف است. برای مثال اگر بازیکنی در مختصات ۳ و ۸ باشد، شلیک به مختصات ۳ و ۷ یک شلیک موفق است که به هدف برخورد کرده است.
اگر کاربر کلمه STATUS را در ورودی وارد کند، برنامه باید وضعیت تمام بازیکنان زنده را شامل نام، مختصات و میزان Blood باقی مانده را در خروجی چاپ کند.
پایان برنامه با ورودی END است.
(در صورتی که خروجی برنامه را با پکیج Turtle 🐢 به صورت گرافیکی نمایش دهید عملا یک بازی کامل ساخته اید)
#game #oop
مساله شماره ۵۶:
به تازگی شما پیشنهاد کار در شرکت wahoo را پذیرفته اید و به عنوان اولین کار از شما خواسته شده که یک Query Engine جدید برای حجم عظیم اطلاعاتی که دستگاه های شرکت wahoo جمع آوری می کنند طراحی کنید.
ورودی برنامه شما یک فایل CSV هست که چهار ستون اطلاعات در آن قرار دارد
- Date
- Athlete Name
- Distance
- Duration
- ActivityType
واحد مسافت کیلومتر و واحد مدت زمان ثانیه است
هر خط در فایل CSV مربوط به یک فعالیت یک ورزشکار است که مسافتی را دویده یا دوچرخه سواری کرده است
مقادیر مجاز برای ActivityType می تواند Riding یا Running باشد.
انجینی که طراحی می کنید باید بتواند به کوئری هایی با ساختار زیر پاسخ دهد. دقت کنید که اعداد در هر کوئری می تواند متفاوت باشد.
Top 10 fastest runners overall
Top 5 fastest riders overall
Top 3 fastest riders in last 2 weeks
Top 5 riders by longest overall distance
Top 5 most disciplined riders overall (riders who ride most of weeks)
Top 3 fastest runs
Top 5 athlethes with most activity time
Top 5 athlethes with longest distance (both riding and running)
#sport #aggregation #stats
به تازگی شما پیشنهاد کار در شرکت wahoo را پذیرفته اید و به عنوان اولین کار از شما خواسته شده که یک Query Engine جدید برای حجم عظیم اطلاعاتی که دستگاه های شرکت wahoo جمع آوری می کنند طراحی کنید.
ورودی برنامه شما یک فایل CSV هست که چهار ستون اطلاعات در آن قرار دارد
- Date
- Athlete Name
- Distance
- Duration
- ActivityType
واحد مسافت کیلومتر و واحد مدت زمان ثانیه است
هر خط در فایل CSV مربوط به یک فعالیت یک ورزشکار است که مسافتی را دویده یا دوچرخه سواری کرده است
مقادیر مجاز برای ActivityType می تواند Riding یا Running باشد.
انجینی که طراحی می کنید باید بتواند به کوئری هایی با ساختار زیر پاسخ دهد. دقت کنید که اعداد در هر کوئری می تواند متفاوت باشد.
Top 10 fastest runners overall
Top 5 fastest riders overall
Top 3 fastest riders in last 2 weeks
Top 5 riders by longest overall distance
Top 5 most disciplined riders overall (riders who ride most of weeks)
Top 3 fastest runs
Top 5 athlethes with most activity time
Top 5 athlethes with longest distance (both riding and running)
#sport #aggregation #stats
activity.csv.zip
11.5 MB
فایل CSV مسأله ۵۶
مسأله شماره ۵۷:
برنامه ای بنویسید که آدرس یک فایل اکسل روی دیسک حاوی اطلاعات دانش آموزان و درس های آن ها را دریافت کرده و سپس با دریافت شماره شناسایی دانش آموزان اطلاعات آن ها و درس هایی که ثبت نام کرده اند را نمایش دهد. برای خواندن فایل اکسل استفاده از پکیج ها آزاد است.
فایل اکسل حاوی سه Sheet به نام های
Students
Courses
Enrollments
می باشد و ساختار ستون های هر Sheet مشابه تصویر می باشد. (در تصویر برای نمایش ساده تر اطلاعات در یک Sheet نشان داده شده است).
ردیف اول در هر Sheet نام ستون ها می باشد.
هر Sheet ممکن است حاوی چند صد هزار ردیف باشد.
Input:
200
100
Output:
Student Info:
Id: 200
Name: Hasan
Hasan Courses:
2: Python for AI
3: C# Introduction
------
Student Info:
Id: 100
Name: Ali
Ali Courses:
3: C# 11 Introduction
#excel #database #relational
برنامه ای بنویسید که آدرس یک فایل اکسل روی دیسک حاوی اطلاعات دانش آموزان و درس های آن ها را دریافت کرده و سپس با دریافت شماره شناسایی دانش آموزان اطلاعات آن ها و درس هایی که ثبت نام کرده اند را نمایش دهد. برای خواندن فایل اکسل استفاده از پکیج ها آزاد است.
فایل اکسل حاوی سه Sheet به نام های
Students
Courses
Enrollments
می باشد و ساختار ستون های هر Sheet مشابه تصویر می باشد. (در تصویر برای نمایش ساده تر اطلاعات در یک Sheet نشان داده شده است).
ردیف اول در هر Sheet نام ستون ها می باشد.
هر Sheet ممکن است حاوی چند صد هزار ردیف باشد.
Input:
200
100
Output:
Student Info:
Id: 200
Name: Hasan
Hasan Courses:
2: Python for AI
3: C# Introduction
------
Student Info:
Id: 100
Name: Ali
Ali Courses:
3: C# 11 Introduction
#excel #database #relational
مسأله شماره ۵۸:
برنامه ای بنویسید که فاصله Levenshtein بین دو رشته را محاسبه کند. این فاصله به تعداد عملیات هایی گفته می شود که برای تبدیل یک متن به متن دیگر لازم است. به عبارت دیگر این معیار بیانگر میزان شباهت دو متن است.
اولین ورودی N تعداد کیس ها و در هر دو خط بعدی دو رشته برای مقایسه وارد می شود
منبع عکس: لینک
https://en.wikipedia.org/wiki/Levenshtein_distance
Input:
3
abcdefg
cdefgh
Like
Bike
Human
Humor
Ouput:
Levenshtein distance is 2
Levenshtein distance is 1
Levenshtein distance is 2
#text_mining
برنامه ای بنویسید که فاصله Levenshtein بین دو رشته را محاسبه کند. این فاصله به تعداد عملیات هایی گفته می شود که برای تبدیل یک متن به متن دیگر لازم است. به عبارت دیگر این معیار بیانگر میزان شباهت دو متن است.
اولین ورودی N تعداد کیس ها و در هر دو خط بعدی دو رشته برای مقایسه وارد می شود
منبع عکس: لینک
https://en.wikipedia.org/wiki/Levenshtein_distance
Input:
3
abcdefg
cdefgh
Like
Bike
Human
Humor
Ouput:
Levenshtein distance is 2
Levenshtein distance is 1
Levenshtein distance is 2
#text_mining
مسأله شماره ۵۹:
عبارت های منظم یا Regular Expressions که در تمام زبان های برنامه نویسی پشتیبانی می شوند به شما امکان بررسی منطبق بودن یک رشته با الگوهای مختلف را می دهند. مثلا برای تست صحت یک ایمیل یا رمز عبور عبارت های منظم کاربرد دارند.
در عین حال، به دلیل مشکلات اقتصادی اخیر در هستی، نسل جدیدی از سارقان ظهور پیدا کرده اند به نام «سارقان استعداد» که با ربودن استعداد های یک دنیا، آن ها را به دنیاهای دیگر Teleport کرده و می فروشند.
متأسفانه یا خوشبختانه، شما نیز توسط یکی از این سارقان به عنوان «استعداد» شناخته شدید و پس از ربودن، شما را به دنیای U67 انتقال داده است.
در این دنیای عجیب و غریب، هرگونه استفاده از کلمات Regex, Regular Expression و کلمات مشابه مجازات سنگینی معادل پرتاب شدن در سیاه چاله مرکزی آن دنیا را به همراه دارد.
شرکت نرم افزاری که شما را از سارق محترم خریداری کرده، یک فروشگاه آنلاین را توسعه می دهد که برای فرم های ثبت نام کاربر نیاز به اعتبارسنجی رمز عبور وارد شده دارد.
خط اول ورودی شامل T تعداد کیس ها، سپس T کیس وارد می شود.
در خط اول هر کیس، مشخصات الگوی صحت سنجی رمز عبور وارد می شود
سپس در خط بعد عدد N معادل تعداد رمز هایی که باید چک شوند و بعد از آن N خط رمز عبور برای چک شدن وارد می شود.
هر الگوی صحت سنجی با کاراکتر سپس دو نقطه سپس حداقل تعداد کاراکترهای آن الگو نشان داده می شود.
برای نمونه در کیس اول، رمز عبور باید حداقل ۸ کاراکتر باشد، حداقل ۱ کاراکتر عددی داشته باشد، حداقل ۲ کاراکتر حرفی داشته باشد، حداقل یک علامت نشانه گذاری (@#&؟!؛) داشته باشد.
Input:
2
N:1 W:2 L:8 P:1
3
xvhssgb
MyPass@20
2030World
N:2 W:1 L:10 P:1
2
new9s#ford2
8fghmo&books
Output:
'xvhssgb' length is less than 8 characters
'MyPass@20' is valid
'2030World' must have at least 1 punctuation marks.
'new9s#ford2' is valid
'8fghmo&books' must have at least 2 numerics.
#regex #password
عبارت های منظم یا Regular Expressions که در تمام زبان های برنامه نویسی پشتیبانی می شوند به شما امکان بررسی منطبق بودن یک رشته با الگوهای مختلف را می دهند. مثلا برای تست صحت یک ایمیل یا رمز عبور عبارت های منظم کاربرد دارند.
در عین حال، به دلیل مشکلات اقتصادی اخیر در هستی، نسل جدیدی از سارقان ظهور پیدا کرده اند به نام «سارقان استعداد» که با ربودن استعداد های یک دنیا، آن ها را به دنیاهای دیگر Teleport کرده و می فروشند.
متأسفانه یا خوشبختانه، شما نیز توسط یکی از این سارقان به عنوان «استعداد» شناخته شدید و پس از ربودن، شما را به دنیای U67 انتقال داده است.
در این دنیای عجیب و غریب، هرگونه استفاده از کلمات Regex, Regular Expression و کلمات مشابه مجازات سنگینی معادل پرتاب شدن در سیاه چاله مرکزی آن دنیا را به همراه دارد.
شرکت نرم افزاری که شما را از سارق محترم خریداری کرده، یک فروشگاه آنلاین را توسعه می دهد که برای فرم های ثبت نام کاربر نیاز به اعتبارسنجی رمز عبور وارد شده دارد.
خط اول ورودی شامل T تعداد کیس ها، سپس T کیس وارد می شود.
در خط اول هر کیس، مشخصات الگوی صحت سنجی رمز عبور وارد می شود
سپس در خط بعد عدد N معادل تعداد رمز هایی که باید چک شوند و بعد از آن N خط رمز عبور برای چک شدن وارد می شود.
هر الگوی صحت سنجی با کاراکتر سپس دو نقطه سپس حداقل تعداد کاراکترهای آن الگو نشان داده می شود.
برای نمونه در کیس اول، رمز عبور باید حداقل ۸ کاراکتر باشد، حداقل ۱ کاراکتر عددی داشته باشد، حداقل ۲ کاراکتر حرفی داشته باشد، حداقل یک علامت نشانه گذاری (@#&؟!؛) داشته باشد.
Input:
2
N:1 W:2 L:8 P:1
3
xvhssgb
MyPass@20
2030World
N:2 W:1 L:10 P:1
2
new9s#ford2
8fghmo&books
Output:
'xvhssgb' length is less than 8 characters
'MyPass@20' is valid
'2030World' must have at least 1 punctuation marks.
'new9s#ford2' is valid
'8fghmo&books' must have at least 2 numerics.
#regex #password
مسأله شماره ۶۰:
یک شرکت تبلیغاتی قصد دارد بهترین مکان های جایگذاری بنرهای تبلیغاتی در وب سایت ها را از روی داده های واقعی کاربران به دست آورد. تعیین دقیق این مکان ها برای آژانس بسیار اهمیت دارد.
بدین منظور، شرکت با نصب یک اسکریپت جاوا اسکریپتی مکان ماوس کاربر را در هر لحظه ضبط می کند و این مختصات را با توجه به سایز صفحه و رزولوشن دستگاه، به یک عدد بین ۱ تا ۱۰۰ تبدیل مینماید.
اولین ورودی B ابعاد باکس های Heatmap ای که باید تولید شود را تعیین می کند. سپس N تعداد خطوط دیتا و سپس N خط دیتا وارد می شود. هر خط شامل X Y S می باشد که X Y مختصات ماوس و S مدت زمان به ثانیه می باشد که ماوس در آن مختصات قرار داشته است.
گرید ورودی 100 در 100 در نظر گرفته می شود و در این مثال گرید (ماتریس) خروجی 20 در 20 خواهد بود.
به ازای هر باکس Heatmap یک عدد در بازه 0 تا 10 نشان دهنده میزان نسبی حضور ماوس کاربر در آن باکس را محاسبه کرده و در خروجی چاپ کنید.
موقعیت 0 0 در بالای سمت چپ صفحه نمایش قرار دارد.
منبع عکس
Input:
5
10
10 5 20
10 8 6
90 15 30
20 10 5
12 67 1
89 45 30
26 56 12
89 30 2
65 23 17
50 50 5
#heatmap
یک شرکت تبلیغاتی قصد دارد بهترین مکان های جایگذاری بنرهای تبلیغاتی در وب سایت ها را از روی داده های واقعی کاربران به دست آورد. تعیین دقیق این مکان ها برای آژانس بسیار اهمیت دارد.
بدین منظور، شرکت با نصب یک اسکریپت جاوا اسکریپتی مکان ماوس کاربر را در هر لحظه ضبط می کند و این مختصات را با توجه به سایز صفحه و رزولوشن دستگاه، به یک عدد بین ۱ تا ۱۰۰ تبدیل مینماید.
اولین ورودی B ابعاد باکس های Heatmap ای که باید تولید شود را تعیین می کند. سپس N تعداد خطوط دیتا و سپس N خط دیتا وارد می شود. هر خط شامل X Y S می باشد که X Y مختصات ماوس و S مدت زمان به ثانیه می باشد که ماوس در آن مختصات قرار داشته است.
گرید ورودی 100 در 100 در نظر گرفته می شود و در این مثال گرید (ماتریس) خروجی 20 در 20 خواهد بود.
به ازای هر باکس Heatmap یک عدد در بازه 0 تا 10 نشان دهنده میزان نسبی حضور ماوس کاربر در آن باکس را محاسبه کرده و در خروجی چاپ کنید.
موقعیت 0 0 در بالای سمت چپ صفحه نمایش قرار دارد.
منبع عکس
Input:
5
10
10 5 20
10 8 6
90 15 30
20 10 5
12 67 1
89 45 30
26 56 12
89 30 2
65 23 17
50 50 5
#heatmap
مسأله شماره ۶۱:
برنامه ای بنویسید که با دریافت آدرس تعدادی عکس بر روی دیسک، ۳ رنگ غالب هر عکس را مشخص کند.
در صورت نیاز جهت دسترسی به اطلاعات رنگی پیکسل های عکس میتوانید از پکیج استفاده کنید ولی برای اصل عملیات محاسبه رنگ غالب استفاده از پکیج مجاز نیست.
هر عکس رنگی را به صورت یک ماتریس درنظر بگیرید که هر عضو ماتریس از سه المان رنگی Red, Green, Blue تشکیل شده که ترکیب آن ها رنگ هر پیکسل عکس را تعیین می کند.
https://en.wikipedia.org/wiki/RGB_color_model
در صورتی که بخواهید یک عکس را در اینستاگرام استوری کنید، اینستاگرام یک طیف از رنگ غالب را به عنوان پس زمینه انتخاب می کند که به نمایش بهتر محتوا کمک می کند.
#image_processing
برنامه ای بنویسید که با دریافت آدرس تعدادی عکس بر روی دیسک، ۳ رنگ غالب هر عکس را مشخص کند.
در صورت نیاز جهت دسترسی به اطلاعات رنگی پیکسل های عکس میتوانید از پکیج استفاده کنید ولی برای اصل عملیات محاسبه رنگ غالب استفاده از پکیج مجاز نیست.
هر عکس رنگی را به صورت یک ماتریس درنظر بگیرید که هر عضو ماتریس از سه المان رنگی Red, Green, Blue تشکیل شده که ترکیب آن ها رنگ هر پیکسل عکس را تعیین می کند.
https://en.wikipedia.org/wiki/RGB_color_model
در صورتی که بخواهید یک عکس را در اینستاگرام استوری کنید، اینستاگرام یک طیف از رنگ غالب را به عنوان پس زمینه انتخاب می کند که به نمایش بهتر محتوا کمک می کند.
#image_processing
Wikipedia
RGB color model
The RGB color model is an additive color model in which the red, green, and blue primary colors of light are added together in various ways to reproduce a broad array of colors. The name of the model comes from the initials of the three additive primary colors…
مسأله شماره ۶۲:
برنامه ای بنویسید که یک فایل اکسل حاوی تعدادی ستون دریافت کرده، سپس به ازای هر ستون Trend مقادیر آن ستون را تشخیص داده و در خروجی چاپ کند.
ردیف اول فایل اکسل حاوی نام ستون ها می باشد. دقت کنید برخی از مقادیر میانی ممکن است لزوما Trend اصلی را رعایت نکنند.
Input:
c:\data\stats.xlsx
Ouput:
Inflation is increasing
Prices is flat
Population is chaotic
Number of books sold is decreasing
#data_processing #excel
برنامه ای بنویسید که یک فایل اکسل حاوی تعدادی ستون دریافت کرده، سپس به ازای هر ستون Trend مقادیر آن ستون را تشخیص داده و در خروجی چاپ کند.
ردیف اول فایل اکسل حاوی نام ستون ها می باشد. دقت کنید برخی از مقادیر میانی ممکن است لزوما Trend اصلی را رعایت نکنند.
Input:
c:\data\stats.xlsx
Ouput:
Inflation is increasing
Prices is flat
Population is chaotic
Number of books sold is decreasing
#data_processing #excel
مساله شماره ۶۳:
دوست شما قصد دارد لپ تاپ خود را بفروش بگذارد و از شما درخواست کرده که راه حلی برای پاک کردن کامل اطلاعات هارد آن ارایه دهید.
همانطور که می دانید فرمت کردن هارد دیسک به معنای پاک شدن اطلاعات نوشته شده بر روی دیسک نیست و در صورت بازگردانی ساختار جداول اطلاعاتی هارد دیسک می توان به اطلاعات هارد دیسک فرمت شده دسترسی پیدا کرد.
برنامه ای بنویسید که آدرس یک پوشه را بر روی دیسک از ورودی دریافت کرده سپس فضای موجود در پارتیشینی که این پوشه در آن قرار دارد را از سیستم عامل دریافت کند.
ورودی بعدی یک عدد با واحد مگابایت است که تعیین می کند سایز هر فایل چقدر باشد.
سپس برنامه شما تا پر شدن این پارتیشن اقدام به ساختن فایل با محتویات Zero و سایز تعیین شده کند.
Input:
c:\data
500
#system_tools #hard_disk
دوست شما قصد دارد لپ تاپ خود را بفروش بگذارد و از شما درخواست کرده که راه حلی برای پاک کردن کامل اطلاعات هارد آن ارایه دهید.
همانطور که می دانید فرمت کردن هارد دیسک به معنای پاک شدن اطلاعات نوشته شده بر روی دیسک نیست و در صورت بازگردانی ساختار جداول اطلاعاتی هارد دیسک می توان به اطلاعات هارد دیسک فرمت شده دسترسی پیدا کرد.
برنامه ای بنویسید که آدرس یک پوشه را بر روی دیسک از ورودی دریافت کرده سپس فضای موجود در پارتیشینی که این پوشه در آن قرار دارد را از سیستم عامل دریافت کند.
ورودی بعدی یک عدد با واحد مگابایت است که تعیین می کند سایز هر فایل چقدر باشد.
سپس برنامه شما تا پر شدن این پارتیشن اقدام به ساختن فایل با محتویات Zero و سایز تعیین شده کند.
Input:
c:\data
500
#system_tools #hard_disk
مسأله شماره ۶۴:
سال ۲۰۹۹ است و سفینه ای که شما ساکن آن هستید به تازگی وارد محدوده منظومه شمسی شده است.
رییس سفینه از شما می خواهد که امکانی را فراهم کنید تا او بتواند اطلاعات سیاره ها ستاره هایی که در مسیر حرکت سفینه قرار دارد را ثبت کرده و بر اساس پارامترهای مختلف همچون جرم و اندازه آن ها بتواند برای تعیین مسیر سفینه از آن ها استفاده کند.
شما تصمیم میگیرید با استفاده از شی گرایی و مفهوم کلاس، اجرام اسمانی پیش رو (در منظومه شمسی) را مدل سازی و ثبت کنید.
برای نام گذاری از اسامی زیر میتوانید استفاده کنید:
AstronomicalBody جرم سماوی
Planet سیاره
Star ستاره
Moon قمر/ماه
#oop
سال ۲۰۹۹ است و سفینه ای که شما ساکن آن هستید به تازگی وارد محدوده منظومه شمسی شده است.
رییس سفینه از شما می خواهد که امکانی را فراهم کنید تا او بتواند اطلاعات سیاره ها ستاره هایی که در مسیر حرکت سفینه قرار دارد را ثبت کرده و بر اساس پارامترهای مختلف همچون جرم و اندازه آن ها بتواند برای تعیین مسیر سفینه از آن ها استفاده کند.
شما تصمیم میگیرید با استفاده از شی گرایی و مفهوم کلاس، اجرام اسمانی پیش رو (در منظومه شمسی) را مدل سازی و ثبت کنید.
برای نام گذاری از اسامی زیر میتوانید استفاده کنید:
AstronomicalBody جرم سماوی
Planet سیاره
Star ستاره
Moon قمر/ماه
#oop